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底层框架原理有待学习
最新文章
- 解决EasyUI-Datagrid和LinqToEntity结合应用时排序问题
- python使用urllib2抓取网页
- CentOS软件安装目录查找
- 关于\t
- 免安装oracle驱动访问数据库
- BZOJ 1034 [ZJOI2008]泡泡堂BNB
- wikioi 1044 拦截导弹 (1999年NOIP全国联赛提高组)
- [HeadFirst-HTMLCSS学习笔记][第十二章HTML5标记]
- 设计模式值六大原则——设计模式之六大原则——单一职责原则(SRP)
- 关于获取URL中传值的解决方法--升级版
- CentOS 搭建git服务
- 常见模块(三) pickle模块和json模块
- 第二篇*1、Python基本数据类型
- LabVIEW(十一):条件结构的巧用
- React-使用styled-components
- mysql库、表、索引
- asp企业网站源码部分
- 基于HttpClient JSONObject与JSONArray的使用
- java对redis的基本操作(一)
- 小tip: 某简单的字符重叠与图形生成----张鑫旭