消息队列

为什么用消息队列?

Tip异步、削峰、解耦

异步:

订单  优惠券/积分 等。

为什么不用线程?

不易于扩展,每加一个线程需要重新coding,发布

削峰:

请求放到队列里面,然后至于每秒消费多少请求,就看自己的服务器处理能力去拿。


缺点:

1. 数据一致性

这个其实是分布式服务本身就存在的一个问题,不仅仅是消息队列的问题,但是放在这里说是因为用了消息队列这个问题会暴露得比较严重一点。

如何保证数据一致性?  答:分布式事务

2. 可用性

多了一个中间件


消息队列如何选型?

1.到各个mq的社区,看活跃程度。

2. 语言,是否同公司的技术栈匹配。

3. 可用性,是否为高可用

4. 功能性,不一定越丰富越好,还要考虑中间件重量。


消息队列如何保证高可用?

我了解的mq一种是普通集群的,

高可用,一种是镜像集群,将队列中的信息同步 。或者是多主备双写。


如何保障消息不被重复消费?

如何保证消息队列的幂等性。  在消费者消费后,正常会返回一个确认消息。

1. 内部, mq定期检查消费进度。

2. 外部,持久化mq 消费记录(加重mq),一般不会这么做,个人认为。服务端做校验,上下游有transition_id。


如何保证消息队列可靠传输?

  • 生产者弄丢数据, 通过事务,来保障请求生命周期,如果数据丢失,则回滚。
  • 消息队列弄丢数据, 持久化(不建议)
  • 消费者弄丢数据,通过事务,来保障请求生命周期,如果数据丢失,则回滚。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值