dubbo和rabbitmq對比


隨着項目越來越大,局勢就是項目拆分,大項目拆分成很多項目,各種技術也應允而生。
從應用交互層面,按我的理解dubbo和rabbitmq就對比分析進行學習。
dubbo和zookeeper結合
  1.zookeeper基於服務發布和治理
  2.dubbo注冊服務和發布應用接口
  配置說明:
  <!-- 提供方 -->    
  <dubbo:application name="productor-batman"></dubbo:application>
    <!-- 使用zookeeper注冊中心暴露服務地址 -->
    <dubbo:registry protocol="zookeeper" address="192.168.153.147:2181" />
    <!-- 用dubbo協議在20880端口暴露服務 -->
    <dubbo:protocol name="dubbo" port="20880" />   
    <!-- 用戶服務接口 -->
    <dubbo:service interface="com.batman.model.Apple" ref="apple" />
  <!-- 消費方 -->
    <dubbo:application name="consumer-batman" />
    <!-- 使用zookeeper注冊中心暴露服務地址 -->
    <dubbo:registry protocol="zookeeper" address="192.168.153.147:2181" />
    <!-- 用戶服務接口 -->
    <dubbo:reference interface="com.batman.model.Apple" id="apple" check="false" />
    3.發布服務說白了就是對需要發布的接口封裝成外部調用的jar包讓其它應用程序調用
      消費者如果引用了jar並調用,那么生產者要引用並實現該接口
      流程就是這么簡單,注冊並發布接口,消費者和生產者之間就可以通訊
rabbitmq
  1.安裝mq,建立連接
  2.聲明一個rabbitTemplate,指定連接信息
  3.建立消息隊列
  4.發布服務
    我們使用的rabbitmq其實就是對spring的amqp做了封裝,應用之間通過接口關聯指定的消息隊列
    來達到通訊的目的。好處就是接口不用發布,但是需要指定使用的隊列名稱
二者比較:
  相同點
  1.都需要安裝第三方插件,一個是zookeeper一個是rabbitmq
  2.都是通過發布接口的方式
  不同點
  1.dubbo直接發布接口,消費方可以直接調用;rabbitmq需要指定消息隊列
    dubbo的缺點是每個需要調用的接口都要發布,rabbitmq寫在業務處理類里面
  2.dubbo直接一個dubbo:reference搞定,rabbitmq要對springamqp做多層封裝才能達到通用的目標
  3.dubbo支持負債均衡,rabbitmq??
  4.關於socket通訊和rpc框架的使用,dubbo和rabbitmq底層框架原理有待學習
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM