理论概念
# 1 传统模式缺点
并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常。
# 2 中间件模式优点
# 2.1 解耦
系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。
# 2.2 异步
# 2.3 削峰
系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。
# 3 消息队列缺点
# 3.1 系统可用性降低
消息队列挂了,相关系统功能受影响。
# 3.2 系统复杂度增加
需要考虑很多方面问题,如重复消费问题、可靠传输(生产者弄丢数据、消息队列弄丢数据、消费者弄丢数据)问题、mq高可用(集群(镜像模式))等等。