消息队列
为什么用消息队列
一开始业务比较小,单机配置可以完成功能。
业务体量较大时,需要采用分布式的部署方式,拆分成一些服务。
作用
- 优点:解耦、异步、削峰
- 缺点:降低了系统的稳定性
异步
让本来同步顺序进行的业务进行异步工作,比如支付——优惠券——积分——短信等业务流程,如果不采用异步操作的话,则用户购买一个商品的时间则会随着
r可能出现的问题
- 消息被重复消费:正常情况下,消费者在消费消息的时候,消费完毕后会发送一个确认消息给消息队列,消息队列就会删除该消息;但是有时由于网络传输时发生故障,导致确认信息没有发送到消息队列,导致消息队列不知道此条消息已经被消费了,于是再次将此条消息发送给其他的消费者,
- 解决:
一回生,二回熟