专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

消息中间件如何实现系统解耦

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
消息中间件怎么实现系统解耦
之前把系统拆分成几个系统,系统之间的通信用的是http接口方式,最近看到说可以使用消息中间件实现。
消息中间件相对http接口来说有哪些优点?比如可以异步?
怎么用消息中间件实现解耦,是系统各自定义消息格式和协议,然后在调用时发送消息吗?
假设我用netty自己实现,那是不是要每个系统都各自启动一个server,如果是用类似于mqtt来实现,是不是也要每个系统部署一个服务来监听消息?
第一次接触,可能问的问题很白痴,希望能帮我解惑下,谢谢各位!
------解决思路----------------------
使用http的话,应用需要care协议设计,care服务是否启动
http方式的缺点:
1.同步方式,当然这个不是绝对,看你自己实现了
2.如果想做横向可扩展,需要自己设计协议解决分布,负载均衡还有各种异常处理
3.A服务依赖B服务,如果B服务有瓶颈,使用HTTP的方式,B的瓶颈也会成为A的瓶颈(短板效应)

mq有哪些优点:
1.异步方式,系统伸缩性好
2.横向拓展的问题基本不用考虑,生产者只需要PUT PUT PUT,起多个Consumer让他们自己去取数据即可
3.系统遇到大流量冲击的时候,MQ还可以帮忙缓冲,不至于直接被冲垮(HTTP同步的时候这里可能会是瓶颈)
------解决思路----------------------
你所谓的“系统之间的通信用的是http接口方式”,是指一种网状分布,也就是服务器之间是各有各的角色,然后相互依赖。而消息队列机制是指星形机制,既“一对多”结构,只有两种角色——master和worker,它专注于简单消息分发,使用简单统一的协议,而不要求各自服务器去了解对方的”htt接口方式”协议。

你可以把master部署在公网上,然后同一机房、不同机房、各种私有局域网里的worker服务器都可以跟master双向通讯,联网很简单很简单。而你的”http接口方式“是基于对等网络的,公网上的服务器不能访问各种局域网网关背后的服务器,联网方式可以很乱也很“高大上”。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: