电脑做ppt一般下载哪个网站好少儿编程
参考资料
实现dubbo随机端口,解决重启Address already in use异常
Dubbo动态改变端口配置
问题重现
所以,话说,指定的 dubbo的provider端口完全无效。。。
问题解决方案
请用 system.setProperty预先设置dubbo参数。
优化
如果直接写死是很不优雅的,所以,可以这样优化一下:
public static void initDubboConfig() {Properties config=new Properties();try {InputStream in = ClassLoader.getSystemResourceAsStream("conf/env/dubbo.properties");InputStreamReader is = new InputStreamReader(in, "utf-8");config.load(is);is.close();in.close();System.setProperty("dubbo.protocol.port", config.get("dubbo.port").toString());System.setProperty("dubbo.registry.address", config.get("dubbo.address").toString());System.setProperty("dubbo.protocol.name", config.get("dubbo.protocol").toString());}catch (Exception ed){ed.printStackTrace();}}
持续优化
索性将必要的dubbo参数都提取出来,彻底优化:
dubbo.properties:
###---同一个微服务参数---###
#注意,不同的微服务它本身的application的名字应该要不一样的。
dubbo.application.name = micro-account-consumer
dubbo.application.owner = programmer
dubbo.application.organization = dubbox###---同一个微服务下面不同的环境之间的参数差异,注意,端口可以不一样,地址也可以不一样---###
#特别注意,不同的微服务要有不同的服务提供者端口。dubbo.protocol.port,否则会被视为冲突的。
dubbo.port = 20882
#注意,不同环境下,address 地址应该是不一样的。
dubbo.address = zookeeper://localhost:2181dubbo.protocol = dubbo
public static void initDubboConfig() {Properties config=new Properties();try {InputStream in = ClassLoader.getSystemResourceAsStream("conf/env/dubbo.properties");InputStreamReader is = new InputStreamReader(in, "utf-8");config.load(is);is.close();in.close();System.setProperty("dubbo.application.name", config.get("dubbo.application.name").toString());System.setProperty("dubbo.application.owner", config.get("dubbo.application.owner").toString());System.setProperty("dubbo.application.organization", config.get("dubbo.application.organization").toString());System.setProperty("dubbo.protocol.port", config.get("dubbo.port").toString());System.setProperty("dubbo.registry.address", config.get("dubbo.address").toString());System.setProperty("dubbo.protocol.name", config.get("dubbo.protocol").toString());}catch (Exception ed){ed.printStackTrace();}}
provider.xml内容:
provider.java:
public static void initDubboConfig() {Properties config=new Properties();try {InputStream in = ClassLoader.getSystemResourceAsStream("conf/env/dubbo.properties");InputStreamReader is = new InputStreamReader(in, "utf-8");config.load(is);is.close();in.close();System.setProperty("dubbo.application.name", config.get("dubbo.application.name").toString());System.setProperty("dubbo.application.owner", config.get("dubbo.application.owner").toString());System.setProperty("dubbo.application.organization", config.get("dubbo.application.organization").toString());System.setProperty("dubbo.protocol.port", config.get("dubbo.port").toString());System.setProperty("dubbo.registry.address", config.get("dubbo.address").toString());System.setProperty("dubbo.protocol.name", config.get("dubbo.protocol").toString());}catch (Exception ed){ed.printStackTrace();}}
小结
1、在配置环境时候各种小问题小bug实在是层出不穷。
2、某种架构某种结构的落地落实是需要大量时间及逐步调试来实现的。