1 MQ认识
MQ是提供消息队列服务的中间件,也称为消息中间件.是一套提供了消息生产,存储,消费全过程API软件系统.
1.1 限流削峰
mq可以将超量请求暂存其中,用于系统后面慢慢处理,避免请求丢失或服务崩掉
1.2 异步解耦
上游对下游系统是同步调用,会降低系统的吞吐量和并发度,系统耦合度高.
在中间加mq异步调用,上游系统把数据交给mq,mq在慢慢把数据给下游系统模块处理.
1.3 数据收集
分布式系统会产生海量数据.如业务日志,用户监控.对这些数据进行实时或批量采集,然后对这些数据进行分析.
2 常见mq
2.1 rabbitmq
是用erlong语言进行开发,吞吐量比kafka和rocketmq低,公司内部定制开发难度大.
2.2 kafka
用Java或Scala开发的.高吞吐率,常用于大数据日志采集,实时场景等业务场景,没有遵循任何常见的MQ协议.
2.3 rocketmq
Java语言开发mq产品,有过双11的考验,性能稳定性高,没有遵循任何常见的mq协议.对于spring cloud Alibaba,支持rabbitmq和kafka.但提倡使用rocketmq