消息中间件使用场景:
- 异步
- 解耦
- 削峰
常见消息中间件比较:
和rpc的区别:
- rpc一般是同步调用,耦合性强,而mq是异步和解耦的
- 在需要同步获取结果的场景下使用rpc,在不希望发送端受限于处理端处理速度的时候使用mq
JMS规范:
JMS规范模型包含如下几个要素:
- 连接工厂
- JMS连接
- JMS会话
- JMS目的/Broker
- JMS生产者
- JSM消费者
JMS消息模型:
- Point-to-Point(P2P) / 点对点,消息有且仅有一个消费者处理
- Topic/主题(发布订阅模式)
AMQP规范:
要素:
- 生产者 消费者 消息
- 信道
- 交换器 队列 绑定 路由键
消息的确认:
消费者收到每一条消息都必须进行确认(自动确认和自行确认)
交换器类型:
- 完全匹配
- 无需匹配,全部发送
- 模糊匹配
虚拟主机:
虚拟主机(vhost)提供逻辑分组和资源分离。每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的connection、exchange、queue、binding等,拥有自己的权限。vhost之于RabbitMQ就像虚拟机于物理机一样,他们通过在各个实例间提供逻辑上分离,允许为不同的应用程序安全保密的运行数据。