zoukankan      html  css  js  c++  java
  • 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底层框架原理有待学习
     

  • 相关阅读:
    win10 Administrator
    笔记
    一步一步建MVC
    安装mysql数据库
    为什么工具监测不出内存泄漏
    实现客户端服务端编译分离
    session
    JavasScript基数排序
    asp.net C# 导出EXCEL数据
    (Excel导出失败)检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失
  • 原文地址:https://www.cnblogs.com/mutong1228/p/9136453.html
Copyright © 2011-2022 走看看