• 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底层框架原理有待学习
     

  • 相关阅读:
    开源包管理系统和环境管理系统 Conda
    浅谈 Python 的模块导入
    用 pytest 测试 python 代码
    关于特征筛选中的IV值
    二 k-means聚类算法的手动实现
    二 统计量及其抽样分布
    PAT B1056组合数的和
    PAT B1061判断题
    'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
    Hadoop搭建高可用的HA集群
  • 原文地址:https://www.cnblogs.com/mutong1228/p/9136453.html
Copyright © 2020-2023  润新知