rabbitmq
erlang 面向并发编程


version: "3.1"
services:
rabbitmq:
image: daocloud.io/library/rabbitmq:management
restart: always
container_name: rabbitmq
ports:
- 5672:5672
- 15672:15672
volumes:
- ./data:/var/lib/rabbitmq


rabbitmq 架构


默认 amqp default (生产者必定是将消息发送导exchange上)






生产者


消费者:
队列其他信息

简单队列




work队列
生产者

消费者:默认平均分摊

手动ack (根据消费能力指定消费能力)


发布订阅模式 publish/subscribe:



routing:



topic


整合spring-boot




spring-boot手动ack



消息可靠性



批量确认


异步确认


ps:确认只能保证消息发送导exchange不能保证exchange到queue

return机制



spring实现:



重复消费问题(避免消息重复消费)

php里 有A B 客户端,如果A客户端没有ack 但是断开连接了,数据会到B客户端重新消费

redis依赖 jedis





spring-boot实现
redis依赖







rabbitmq应用










