title: Dubbo配置直连 date: 2017-08-31 16:31:30 tags:
- dubbo
- 注册中心
- 直连
- registry
categories: dubbo
背景
部分小伙伴由于某些原因不能再公司开发。 那么现在提供dubbo直连的相关配置
步骤
-
使用在application-dubbo文件中
- 方案 换用公网zookeeper (如果网络受限请忽视)
<dubbo:registry address="XXX:24681" protocol="zookeeper" id="f6-registry" group="${dubbo.group}" default="false"/> 复制代码
- 使用redis注册中心(否决,依赖老版本commons-pool,系统中不存在,需要引入新依赖)
- 使用组播注册中心
<dubbo:registry address="224.5.6.7:1234" protocol="multicast" id="f6-registry" group="${dubbo.group}" default="false"/> 复制代码
同时在jvm参数中增加-Djava.net.preferIPv4Stack=true 4. 使用dubbo注册中心(需要自己其单独服务) 不使用注册中心,配置成N/A 但是需要几个地方注释(注意不要提交!) ```diff Index: biz-service-impl/src/main/resources/application-dubbo.xml IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- biz-service-impl/src/main/resources/application-dubbo.xml (revision 24217) +++ biz-service-impl/src/main/resources/application-dubbo.xml (revision ) @@ -12,15 +12,15 @@ <dubbo:protocol name="dubbo" port="20881" id="f6-protocol" serialization="java"/> <dubbo:provider timeout="30000" group="${dubbo.group}" retries="0" owner="qixiaobo" id="f6-provider" filter="customException"/>
- <dubbo:registry address="${zookeeper.url}" protocol="zookeeper" id="f6-registry" group="${dubbo.group}" default="false"/> + <dubbo:registry address="N/A" id="f6-registry" group="${dubbo.group}" default="false"/> - <dubbo:reference id="carZoneAgentService" interface="com.f6car.api.service.AgentService" group="${dubbo.group}" registry="f6-registry" check="false"> +<!-- <dubbo:reference id="carZoneAgentService" interface="com.f6car.api.service.AgentService" group="${dubbo.group}" registry="f6-registry" check="false"> <dubbo:method name="bsdService" cache="lru" mock="true"/> <dubbo:method name="accService" cache="lru" mock="true"/> <dubbo:method name="atService" cache="lru" mock="true"/> <dubbo:method name="carService" cache="lru" mock="true"/> - </dubbo:reference> - <import resource="classpath*:application-dubbo-supplychain.xml"/> + </dubbo:reference>--> + <!--<import resource="classpath*:application-dubbo-supplychain.xml"/>--> </beans> \ No newline at end of file Index: biz-rmi-impl/src/main/java/com/air/tqb/dubbo/PublishDubboBean.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- biz-rmi-impl/src/main/java/com/air/tqb/dubbo/PublishDubboBean.java (revision 24217) +++ biz-rmi-impl/src/main/java/com/air/tqb/dubbo/PublishDubboBean.java (revision ) @@ -32,7 +32,7 @@ } builder.setLazyInit(false); builder.addPropertyValue("interfaceClass", clazz.getInterfaces()[0]); - builder.addPropertyReference("registry", "f6-registry"); + builder.addPropertyValue("register", false); builder.addPropertyReference("provider", "f6-provider"); builder.addPropertyReference("protocol", "f6-protocol"); builder.addPropertyReference("application", "f6-application"); ``` 复制代码
推荐使用最后一个方案
-
在调用的客户端代码中直接在对应的interface中增加url(此为样例,请修改对应的项目中的url)
<dubbo:reference id="carZoneAgentService" interface="com.f6car.api.service.AgentService" group="${dubbo.group}" registry="f6-registry" check="false" url="dubbo://127.0.0.1:20881"> 复制代码
-
可以使用telnet来checkdubbo服务是否安好 (端口为20881)
telnet localhost 20881 复制代码
比如
dubbo>ls com.air.tqb.service.base.MaintainTypeService com.air.tqb.service.base.BasSearchService com.air.tqb.service.base.OrgGroupWxService com.air.tqb.service.wash.CarWashService com.air.tqb.service.staff.StaffService com.air.tqb.service.report.EmployeePerformanceService com.air.tqb.service.item.ItemService 复制代码