为什么使用消息中间件

为什么要使用消息中间件

  • 解耦
    A服务调用B,C服务,后续后其他服务接入地方,A服务始终要改。举个例子:A触发了一个扫码事件,扫完码之后,会有模板推送(调用了B服务)、跳转到某一个页面(调用了C服务)。后面假如你还想产生其他事件,A服务会越调越多,A服务依赖其他服务也会越来越多。
    而有了消息中间件,我们可以使这类的业务解耦,A将消息写入消息队列,需要消息的系统,订阅相应的主题,进行消费。
  • 异步
    还是拿上面的例子举例,A服务调用的服务越多,那么相应的时间就越久,而这些业务又是必须马上相应的,那么我们可以采用异步的方式,让服务consumer多订阅进行消费,加快相应速度
  • 削峰
    数据库的并发量是有一定瓶颈的,所以我们可以按照数据库能处理的并发量,利用消息中间件,拉取相应的消息,进行消费。

使用消息中间件考虑点

保证消息高可用

可以想到的一种情况是,如果消息总线挂了怎么办?
可以搭建高可用集群HA Cluster。

防止消息重复消费

一般消息消费完之后,会发送一个确认消息到服务端,告诉服务端消息以及消费过了,可以进行销毁,那么为什么还会出现消息重复消费呢?回答:网络传输等等故障,确认信息没有传送到服务端,所以有重复消费的可能。怎么办呢?对消费过的消息,进行记录,比如用Redis存放消息的唯一标识。

保证消息的顺序性

单线程处理消息

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值