RabbitMQ

2018-10-24  本文已影响0人  nafoahnaw

首先抛出几个问题:
1.消息中间件的优势?
2.rabbitmq作为一个消息中间件相比其他产品有什么优势?
3.组成部分以及每个部分担当的职责.
4.使用rabbitmq时应该注意什么
5.如何保证消息一定被消费/投递?

消息中间件的优势

rabbitmq作为一个消息中间件的优势

组成部分

RabbitMQ是基于AMQP(https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol)模型实现的消息中间件,他包含以下组成部分




除此之外还有另外几个概念



举个例子,下图中一共两个Exchange,一个采用的时fanout模式,另一个是direct模式,红线代表routingkey=sun的消息的轨迹,绿线代表routingkey=moon的消息的轨迹,可以看到采用fanout模式的Exchange不关心bindingkey到底是啥,消息将会投递给所有绑定在该Exchange的Queue里。
在看绿线消息的轨迹,因为DIRECT模式所以消息只被投递到了bindingkey=moon的queue。
综上,queue可以通过bindingkey来选择自己感兴趣的消息,而publisher可以通过设置消息的routingkey来对消息进行打标归类,而最终决定这个消息会投递到哪个queue,还需要看exchange的类型。

屏幕快照 2018-10-24 下午7.46.24.png

使用rabbitmq时该注意什么?

http://mqmastery.com/2017/02/28/4-things-avoid-rabbitmq/

rabbitmq如何保证消息一定被消费/投递

rabbitmq的ack机制以轻量级的解决方案替代事务性消息保障消息的可靠性,具体可参考:http://www.rabbitmq.com/confirms.html
通俗理解如下,具体怎么表现要看client和broker的设置

上一篇 下一篇

猜你喜欢

热点阅读