dubbo中关于protocol的配置

来源:互联网 发布:人工智能儿童教育产品 编辑:程序博客网 时间:2024/06/10 17:23
dubbo中关于protocol的配置

protocol 一个项目中可以配置多个,如果未定义port默认为20880(本人因为从网上copy了一个
<dubbo:protocol accesslog="true"/>,而且已定义<dubbo:protocol name="dubbo" port="20880" />,当我启动项目的多个实例时只修改了定义端口的protocol,而默认的未被修改,其他dubbo服务就会报端口已被占用程序退出的异常)

错误代码片段:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="demo-provider" />
<dubbo:registry address="zookeeper://localhost:2181"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<dubbo:protocol accesslog="true" />
<dubbo:service interface="com.ssyt.dubbo.demo.DemoService" ref="demoService"/>
<bean id="demoService" class="com.ssyt.dubbo.dome.provider.DemoServiceImpl"/>
</beans>

红色部分为冲突代码,可改为不同的端口,一个项目中一种协议最好只定义一次
修改后的代码为:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="demo-provider" />
<dubbo:registry address="zookeeper://localhost:2181"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" accesslog="true"/>
<dubbo:service interface="com.ssyt.dubbo.demo.DemoService" ref="demoService"/>
<bean id="demoService" class="com.ssyt.dubbo.dome.provider.DemoServiceImpl"/>
</beans>