2019-08-11 Dubbo分布式

【問題解決】
關于dubbo常見出錯:
zookeeper端口號是否開放
zookeeper地址是否正確
一個service對應一個tomcat
springmvc.xml是否放對文件夾
web.xml不能有多余標簽

【今日感悟】

Zookeeper

linux中開放zookeeper2181端口iptables -I INPUT -p tcp --dport 2181 -j ACCEPT.
在zookeeper的bin目錄里啟動./zkServer.sh start服務命令.

provider提供服務者

創(chuàng)建項目:export_company_interface編寫對外發(fā)布的服務的接口
創(chuàng)建項目:export_company_service實現(xiàn)接口
導入依賴
配置web.xml監(jiān)聽器監(jiān)聽其他的spring配置文件
配置applicationContext-dubbo.xml

 <!-- 應用名稱:隨便寫(保證唯一:和項目名一致)  -->
 <dubbo:application name="export_company_service">
    <!--qos 監(jiān)控防止端口沖突-->
    <dubbo:parameter key="qos.enable" value="false"></dubbo:parameter>
 </dubbo:application>

 <!--配置注冊中心  注冊中心的地址-->
 <dubbo:registry address="zookeeper://192.168.12.132:2181"></dubbo:registry>

 <!--
    配置請求協(xié)議  此dubbo服務的請求端口和tomcat端無關,不能一致。
        port(端口):dubbo的指定端口號,服務提供者的真實請求端口
  -->
 <dubbo:protocol name="dubbo" port="20881"></dubbo:protocol>

 <!--配置dubbo服務提供者的包掃描-->
 <dubbo:annotation package="cn.it.service"></dubbo:annotation>

配置事務:applicationContext-tx.xml
編寫服務接口實現(xiàn)類,這里的@service注解是dubbo的service
@Autowired不要換成@Reference
通過main函數(shù)啟動服務

public static void main(String[] args) throws IOException {
      //1.加載配置文件
      ClassPathXmlApplicationContext ac =
            new ClassPathXmlApplicationContext("classpath*:spring/applicationContext-*.xml");
      //2.啟動
      ac.start();
      //3.輸入后停止
      System.in.read();
   }

系統(tǒng)部署

dubbo傳輸?shù)膶ο笕绻麤]有實現(xiàn)可序列化接口Serializable,報錯:
Caused by: Serialized class Company must implement java.io.Serializable
導入依賴
配置web.xml
配置springmvc.xml

<!--SpringMVC配置-->
    <context:component-scan base-package="cn.itcast.web"></context:component-scan>
   <mvc:annotation-driven></mvc:annotation-driven>

   <!--Dubbo配置-->
    <!-- 當前應用名稱,用于注冊中心計算應用間依賴關系,注意:消費者和提供者應用名不要一樣 -->
    <dubbo:application name="export_web_protal" />
    <!-- 連接服務注冊中心zookeeper ip為zookeeper所在服務器的ip地址-->
    <dubbo:registry address="zookeeper://192.168.12.132:2181"/>
    <!-- 開啟dubbo注解掃描(@Reference注解)-->
    <dubbo:annotation package="cn.itcast.web"/>

編寫控制器,@Reference(retries = 0)導入service,retries:配置重試次數(shù)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容