消息中间件的意义和应用场景
2018-03-04 15:29
676 查看
消息中间件一般两个功能,解耦和异步处理,分别举个例子吧
解耦合:
比如我们做一个微博产品中的好友系统,就很需要使用消息中间件
当我们添加一个关注的时候, 涉及以下几个子系统
推荐系统,需要根据你关注的人给你做数据分析
搜索系统,需要根据你的数据建立索引
feed系统,需要根据你关注的人,发送一条新鲜事
统计系统 用于数据统计,了解产品情况
而如果直接在加关注的流程里进行这些操作,可能带来风险,所以,会引入mq来解耦合,因此就像你说的,一般是 "单向传输" 的(当然这不是绝对的,取决于你系统复杂度),而且发往mq的数据一般都不大,比如 from_uid, to_uid 就行了,一般都不会很大,如果发送的数据不满足你的要求,这个时候,需要调用好友系统提供的接口了
异步处理:
有的时候,我们一个操作可能会耗时比较久,所以,并不会在主要业务流程里进行处理
比如,我们在删除一个用户的时候,可能会有很多关联数据的操作,为了尽快的响应以及解耦合,我们会将这个消息发送给其他系统,让它们根据需求自己处理
解耦合:
比如我们做一个微博产品中的好友系统,就很需要使用消息中间件
当我们添加一个关注的时候, 涉及以下几个子系统
推荐系统,需要根据你关注的人给你做数据分析
搜索系统,需要根据你的数据建立索引
feed系统,需要根据你关注的人,发送一条新鲜事
统计系统 用于数据统计,了解产品情况
而如果直接在加关注的流程里进行这些操作,可能带来风险,所以,会引入mq来解耦合,因此就像你说的,一般是 "单向传输" 的(当然这不是绝对的,取决于你系统复杂度),而且发往mq的数据一般都不大,比如 from_uid, to_uid 就行了,一般都不会很大,如果发送的数据不满足你的要求,这个时候,需要调用好友系统提供的接口了
异步处理:
有的时候,我们一个操作可能会耗时比较久,所以,并不会在主要业务流程里进行处理
比如,我们在删除一个用户的时候,可能会有很多关联数据的操作,为了尽快的响应以及解耦合,我们会将这个消息发送给其他系统,让它们根据需求自己处理
相关文章推荐
- 消息中间件的意义和应用场景
- 消息中间件的意义和应用场景 (activeMq)
- 消息中间件的意义和应用场景
- 架构设计:系统间通信(27)——其他消息中间件及场景应用(上)
- 架构设计:系统间通信(32)——其他消息中间件及场景应用(下2)
- RabbitMQ消息中间件在工作中的应用场景
- 以ActiveMQ为例JAVA消息中间件学习【4】——消息中间件实际应用场景
- 架构设计:系统间通信(32)——其他消息中间件及场景应用(下2)
- 架构设计:系统间通信(32)——其他消息中间件及场景应用(下2)
- 中间件--消息中间件(一)应用背景和场景
- RabbitMQ(消息中间件)在工作中的应用场景
- 架构设计:系统间通信(27)——其他消息中间件及场景应用(上)
- 架构设计:系统间通信(31)——其他消息中间件及场景应用(下1)
- 架构设计:系统间通信(33)——其他消息中间件及场景应用(下3)
- 消息队列中间件--ActiveMQ--介绍及应用场景
- 消息中间件的应用场景
- MQ消息中间件的应用场景
- 7月目标 socket , 一致性哈希算法 ; mongodb分片; 分布式消息队列; 中间件的使用场景
- Html学习总结(2)——Html页面head标签元素的意义和应用场景
- 消息队列应用场景