每个dubbo提供者provider 需要绑定一个端口,指定具体端口时如果端口重复了会启动失败报错端口已绑定。
dubbo微服务架构中每个dubbo微服务模块提供者 都需要绑定一个端口,如果端口固定的话那么需要通过配置文件统一管理,当dubbo微服务模块增加时需要新的具体端口,这样会很麻烦。
如果不想通过配置管理dubbo端口的话,可以设置dubbo提供者绑定端口值-1 , 这表示让dubbo提供者自己去寻找一个从20880开始递增的可用的端口。
- dubbo提供者 在xml配置文件中设置端口-1
<!-- port值-1 表示让dubbo自行找一个可用的port -->
<dubbo:protocol port="-1" name="dubbo"/>
- dubbo提供者 在application.properties配置文件中设置端口-1
<!-- port值-1 表示让dubbo自行找一个可用的port -->
spring.dubbo.protocol.port=-1
需要知道的是:dubbo提供者port设置-1,每次自动获取实际绑定端口值都是从20880开始寻找起
举个粟子:
现在一个提供者都没,启动了一个自动获取端口的提供者A 获取端口20880,再来一个 自动获取端口的提供者B获取端口一定是20881,主动结束提供者A,启动自动获取端口的提供者C 获取的端口是20880
想要自己验证的话,可以通过 dubbo-admin 观察。