概念
定义 项目构建管理
本质 异步处理技术 [节省服务响应时间,提高系统吞吐量]
应用程序:Application
消息: Message
排队: Application通过Queue通信 [作用:除去接收和发送Application,同时执行的要求。]
消息队列:Application对Application通过读写出入队列的通信方法。
消息传递:Application之间通过Message发送数据通信,而不是直接调用来彼此通信。[ 直接调用: 诸如RPC ]
组成 [1]项目对象模型 Project Object Module POM.xml
[2]项目生命周期 Project Lifecycle
[3]依赖管理系统 Dependency Management System
功能 [1]项目构建自动化:编译、测试、打包、部署、发布 Project Lifecycle
[2]依赖管理统一化:坐标管理、仓库、归档文件 Dependency Management System
应用程序 Application 消息队列Message Queue
通信
通信方式 [1]直接调用—建立连接 RPC
[2]间接通知—不需连接 MQ
区别:
[1]ActiveMQ
[2]RabbitMQ 智能代理、弱智消费者 [ 向消费者提供一致的消息传递 ]
[3]Kafka 弱智代理、智能消费者 [ 高容量的发布-订阅消息和流设计 ]
ActiveMQ
定义
本质
组成 [1]
[2]
[3]
功能 [1]
[2]
RabbitMQ
定义 实现高级消息队列协议的消息中间件 AMQP
本质 通用消息代理 [通信模式:点对点,请求-回复和发布-订阅]
功能 异步消息
[1]多消息传递协议
[2]消息队列
[3]传递确认
[4]灵活路由到队列
[5]多种交换类型
角色
Producer 消息生产者 [Application-Send-Message 应用投递消息 Sender发送方]
Consumer 消息消费者 [Application-Receive-Message应用接受消息 Receiver接收方]
Server 服务端 [Broker]
Client 客户端 [Producer、Consumer]
组件
Broker 消息队列服务器 Broker:Vhost=1:N
Vhost 虚拟主机 分离用户权限
Channel 消息通道 Channel:会话任务=1:1
Exchange消息交换机 指定消息规则,路由队列
Queue 消息队列载体 Message:Queue=1:N
Bind 绑定动作 依据路由规则,绑定Exchange与Queue
Routing Key 路由关键字 Exchange根据Routing Key进行消息投递
流程
第一步:Client—Producer
[1]连接Broker,打开Channel
[2]声明Exchange,设置属性
[3]声明Queue,设置属性
[4]使用RoutingKey,在Exchange与Queue之间Binding
[5]投递Message至Exchange
第二步:Server—Broker
第三步:Client—Consumer
Exchange
分类Type
[1]Fanout—广播模式
[2]Worker—工作模式
[3]Direct—转发模式 根据Key投递
[4]Topic —主题模式 根据主题匹配 abc.# \ abc.* \ [ 多#、* ]
持久化Durable
条件:如果Exchange与Queue都是Durable,那么Binding也是Durable—保证一致性
Kafka
版权声明:本文为ddhmbbklyk2018原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。