RabbitMQ
理解AMQP协议 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一个进程间传递异步消息的网络协议。 工作过程 1.发布者(Publisher)发布消息(Message),经由交换机(Exchange)。 2.交换机根据路由规则将收到的消息分发给与该交换机绑定的队列(Queue)。 3.最后AMQP代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取。 Exchange交换机 交换机是用来发送消息的 AMQP 实体。 交换机拿到一个消息之后将它路由给一个或零个队列。 它使用哪种路由算法是由交换机类型和绑定(Bindings)规则所决定的。 四种类型:直连交换机(Direct)、扇形交换机(Fanout)、主题交换机(Topic)、头交换机(Headers)。 交换机可以有两个状态:持久(durable)、暂存(transient)。 持久化的交换机会在消息代理(broker)重启后依旧存在,而暂存的交换机则不会(它们需要在代理再次上线后重新被声明)。 直连交换机(Direct):默认,严格匹配,私聊场景 扇形交换机(Fanout):广播模式 主题交换机(Topic):模糊匹配 头交换机(Headers):属性匹配 参考资料:https://blog.csdn.net/weixin_37641832/article/details/83270778 正常情况下,如果消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失,有没有办法可以解决这个问题? RabbitMQ有两种方式来解决这个问题: 1.通过AMQP提供的事务机制实现; 2.使用发送者确认模式实现; 参考资料:https://www.cnblogs.com/vipstone/p/9368106.html
rabbitmq