(1)消息中间件的概念
如何理解消息中间件?
消息中间件是保存消息的一个容器,与数据库不同的是数据库保存的数据是可以被修改的,而消息中间件一般不会被修改
消息中间件在消费的生产者与消费者产生,相当于一个中间人的角色,提供了路由保证消息的传递,如果消费者不能及时接收,
消息会保留下来,知道消费者上线(保证在存活期内)
消息中间件的特点?
异步处理: 消费生产者发送消息,不需要哦等待消费者响应,一个消息可以发送一个或者多个消费者无需对消息生产者做同步回应
不同的业务之间解耦合:发送者和接受者其实可以不必同时在线,例如:我们网购其实就是一个消息中间件,我们下单的时候
我订单信息发送给商家,而商家只需要确认发货即可,根本不关心对方是谁,这样做保证了最终的一致性
(2)消息中间件的应用场景
例如:我们在做用户登录的时候
用户先填写注册信息--> 想注册服务写入数据,这一步其实就是将数据保存到数据库
注册信息往往有身份验证的信息,例如:手机号,邮箱,这里就会把消息放入到消息中间件,将消息放松到邮件服务或手机短信服务
日志分析
应用服务---> 将日志放入到消息中间件,消息中间件进行暂存,定时将发送到日志服务
延迟发送和暂存
将消息存放在消息中间件,但是不消费,作为暂存,在某个时刻一起放出来,这样可以模拟秒杀活动,进行压力测试
(3)消息中间件传输模型
1.点对点
也就是发送者只发个一个接受者
发送者和接受者并无时间上的依赖
接受者确认消息收到和处理
2.发布订阅
订阅者要订阅一个主题,发布者将消息发送给所有的订阅者
其实我们生活中经常遇到订阅某个主题,然后我们就能一直收到相关文件
其实我们细想一下 是不是所有具备存储功能 例如 mysql sqlserver redis等No SQL 都可以作为消息中间件