RabbitMQ
2021-10-22 13:14:09 14 举报
RabbitMQ是一个开源的消息代理和队列服务器,用于通过轻量级的消息传递协议在分布式系统中存储和转发消息。它基于AMQP(高级消息队列协议)标准,提供了可靠的消息传递、路由、持久化和安全性等功能。RabbitMQ具有高度可扩展性和灵活性,可以适应各种规模的应用程序和系统。它可以作为企业级的消息传递解决方案,广泛应用于订单处理、任务队列、日志收集、事件驱动架构等领域。RabbitMQ支持多种编程语言的客户端库,如Java、Python、.NET等,使得开发人员可以轻松地集成和使用它。总之,RabbitMQ是一个强大而灵活的消息中间件,可以帮助构建可靠、高效和可扩展的分布式系统。
作者其他创作
大纲/内容
队列
生产者
step: 3 发布订阅 - 之 Fanout(也称为广播)
消费者
大量发消息
接收消息
routingKey
轮训分发消息:工作线程执行顺序 ABC ABC ABC ABC
第二步: 消费者代码
绑定
step: 1 简单模式
与Direct类似* : 匹配一个词#:匹配一个或者多个词
A队列
工作线程C(消费者)
step: 5 发布订阅 - 之 Topic(也称为通配符路由模式)
Java集成 Spring AMQP(Maven 依赖 引入 AMQP)
交换机
发消息
B队列
工作线程B(消费者)
1. ACK 确认机制|2. 能者多劳3. 消息持久化:交换机持久化、队列持久化
工作线程A(消费者)
第一步: 生产者代码
1. 接收RabbitMQ:① MQ:消息队列、②AMQP: 协议、③JMS:jdk标准2. 五种消息模型 a. 简单模型:一个生产者、一个队列、一个消费者 b. 工作模型: 一个生产者、一个队列、一个消费者 (配置不公平分发- 消费方竞争关系) c. 订阅模式之 fanout: 一个生产者、一个交换机、多个队列、多个消费者 (一个消息可以被多个消费者消费) d: 订阅模式之 direct: 一个生产者一个焦化你爱多个队列多个消费者 routingKey,一个消息发送给符合routingKey的队列 e: 订阅模式之 topic: 通配符 ,# :代表一个或者多个词在消费者方配置 channe1.basicQos(prefetchCount);prefetchCount =1 代表不公平分发prefetchCount =2 代表预取值(值大于1) :
同一个消息 只能被消费一次
消费者B
消费者A
step: 2 工作队列模式
step: 4 发布订阅 - 之 Direct(也称为定向路由模式)
0 条评论
下一页