为什么使用消息队列?
1、解耦:对于新加入的系统,可以直接消费中间件消息队列来处理业务,无需额外修改系统代码兼容新接入系统
2、异步:相比于同步响应时间过长,用户又不需要直接得到结果的,可使用异步解决响应时间长的问题。
3、削峰:同一时间有大量用户请求、访问,对DB造成极大的压力,例如:秒杀、抢票等,可短时间缓解峰值,达到正常平滑处理业务。
使用消息队列的缺点?
1、系统可用性降低:本来你的系统好好的,如果消息队列中间件挂掉了?你系统的某些功能是不是蹦了?
2、系统复杂性增大:使用了MQ,如何保持数据一致性?如何解决数据缺失问题?如何解决数据重复消费的问题?
消息队列中间件选择?
1、中小型软件公司,建议选 RabbitMQ
2、大型软件公司,个人建议kafka(因为只用过这个)
网友评论