rabbitMQ

本文介绍了RabbitMQ这一遵循AMQP协议的消息服务的核心概念,包括消息生产者、交换器、消息队列及消费者等,并详细阐述了交换器的不同类型如扇形、直接和主题等。同时探讨了消息服务中常见的问题,如如何防止消息丢失,即使在RabbitMQ服务宕机的情况下也能确保消息的完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[url]http://www.rabbitmq.com/getstarted.html[/url]
rabbitMQ是遵循AMQP协议实现的消息服务,核心概念
producer - 消息生产者
exchange - rabbitMQ服务端的信箱,负责接受从producer发送来的消息
queue - 消息队列,同样在rabbitMQ服务端。exchange会把消息分发给queue。consumer从queue中取消息
consumer - 消费者,从queue里面读取消息

exchange类型:
fanout - 把exchange接受到的message分发到所有bind到这个exchange的queue
direct - queue在绑定到这个exchange的时候会指定binding-key。exchange在接受message的时候,message可以指定自己的routing-key。exhcange会比较message的routing-key和queue的binding-key, 进而把不同的message分发到不同的queue当中。
topic - 貌似支持类正则表达式,高阶??
header - ??

常用的类型也就fanout和direct了,很简单的!


消息服务比较在意的问题无外乎以下几点,

消息会不会丢?
在实现consumer的时候,可以指定其绑定的queue需要手工进行message acknowlegment(message ack)。如果queue没有接受到consumer发回的message ack, 它便不会删除message,直到consumer发送回来message ack,这就表明consumer已经处理完本条消息了。而且这个没有超时机制,只有当consumer的连接断掉之后,queue才会进行重发。message ack机制可以保证消息不会丢。

如果rabbitMQ Server down掉了怎么办?
同样,在实现consumer的时候也可以指定queue和message都是durable的。这样当断电或死机的时候,queue和message同样不会丢。因为server已经帮你把他们本地化了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值