消息中间件-RabbitMQ

消息中间件
1.采用异步处理模式
消息发送者可以发送一个消息而且不用等待相应。
消息接收者订阅或监听该通道。
一条消息最终可以转发给一个或多个消息接收者。
2.应用按程序和应用程序调用关系为松耦合关系
发送者和接收者不必了解对方,只需要确认消息。
发送者和接收者不必同时在线。
 
1 点对点模型 PTP
每个消息只有一个消费者
发送者和接收者没有时间依赖
接收者确认消息接收和处理成功
 
2 发布-订阅模型 Pub/Sub
多个消费者可以获得消息。
发布者和订阅者之间存在时间依赖性。
发布者需要建立一个订阅(subscription),以便消费者订阅。
订阅者必须保持持续的活动状态接收消息,除非订阅者建立了持久的订阅。
订阅者未连接时发布的消息将在订阅者重新连接时重新发布。
 
(1)每个消息可以有多个订阅者
(2)客户端只有订阅后才能接收到消息
(3)持久订阅和非持久订阅
消息中间件的使用情景。
1、网站用户注册,注册成功后会过一会发送邮件确认或者短信。
这种场景是发布订阅模式的。
 
2、日志进行集中收集,用于计算pv,用户行为分析。
小流量测试,版本a 98%流量,版本a.1 2%流量,最后根据集中日志收集,通过日志判断版本效果。
 
 
3、数据复制案例
将数据从源头复制到多个目的地,一般要求顺序或者保证因果。并且保证数据的完整性。
 
用于跨机房数据传输,搜索,离线数据计算等。
 
4、延迟消息发送和暂存
(1)把消息中间件当成可靠的消息暂存地。
(2)定时进行消息投递,比如模拟用户秒杀访问,进行系统压力测试。
 
点对点模式
 
 
5 消息广播
 
比如电商,商品价格用cache,当数据变更之后由于网络原因,某个cache没有被更新到,就会出现问题。
这个数据不一致的问题就可以通过消息中间件来解决。
现在分布式一般都用租约的方式。
 
发布订阅模式
 
消息中间件分类:
1 (push)推送消息模型:消息生产者将消息发送给消息传递服务,消息传递服务又
将消息推送给消息消费者。
消息存储到消息中间件中,保存推送记录,保存订阅关系,消费者负载均衡就是均衡推送给消费者。
 
2(pull)拉消息模型:消费者请求消息服务接收消息,消息生产者从消息中间件拉该消息。
 

RabbitMQ

关键字:

ExchangeType类型
直接交互式
广播式路由键
主题式交换器
 
RabbitMQ常用配置

RabbitMQ.config配置例子:

Rabbitmq常用命令

reload就是不停止服务的时候对配置更改生效。

未完待续

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/ArmoredTitan/p/RabbitMQ.html