dubbo服務的 遠端呼叫
阿新 • • 發佈:2019-01-09
首先dubbo 和spring 是無縫整合的,先看下配置檔案 提供端的,
<!-- 具體的實現bean --> <bean id="testService" class="com.dubbo.provider.impl.TetsServiceImpl" /> <!-- 提供方應用資訊,用於計算依賴關係 --> <dubbo:application name="xixi_provider" /> <!-- 使用multicast廣播註冊中心暴露服務地址 <dubbo:registry address="multicast://224.5.6.7:1234"/> --> <!-- 使用zookeeper註冊中心暴露服務地址 --> <!--<dubbo:registry address="zookeeper://10.28.53.83:2181" /> --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 用dubbo協議在20880埠暴露服務 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 宣告需要暴露的服務介面 --><dubbo:service interface="com.dubbo.provider.TetsService" ref="testService" />
大概就是這樣,一些標籤 和bean例項 介面service層 注意zookeeper ip和埠配置
在看消費端
<!-- 消費方應用名,用於計算依賴關係,不是匹配條件,不要與提供方一樣 --> <dubbo:application name="test_consumer" /> <!-- 使用zookeeper註冊中心暴露服務地址 --> <!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> --><!-- <dubbo:registry address="zookeeper://10.28.53.83:2181" /> --> <!-- 使用zookeeper註冊中心暴露服務地址 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 生成遠端服務代理,可以像使用本地bean一樣使用demoService --> <dubbo:reference id="testService" interface="com.dubbo.provider.testService" />
注意的問題:在消費端要引入提供端的一些依賴,實體 服務層等等, zookeeper服務啟動正常,
最後再通過單例dubbo和spring整合, 如下
public class DubboService { /** 單例物件 **/ public static final DubboService me = new DubboService(); /** spring上下文 **/ private ClassPathXmlApplicationContext context = null; private final static String providerConfig = "applicationContext-mybatis.xml"; public DubboService() { loadRpcConfig(); } /** * 載入RPC服務 */ protected void loadRpcConfig(){ context = new ClassPathXmlApplicationContext(new String[] {providerConfig}); context.start(); } /** * 通過引用id獲取遠端服務物件例項 * @param referenceId * @return 返回遠端服務物件例項 */ public Object getRpcService(String referenceId){ return context.getBean(referenceId); } }
最後 可以在專案中呼叫別的服務介面了, 待續...........