1.mq优缺点
优点:解耦,削峰,异步
缺点:系统复杂度高(考虑一致性,重复消费,消息丢失)
2. kafka,activeMq,RabbitMQ,RocketMQ优缺点
activeMQ使用不多,没有大规模吞吐量场景,社区不活跃,不建议
RabbitMQ:小型公司可以考虑,支持稳定,活跃度高
RocketMQ:大公司,基础架构比较强
kafka:实时计算,日志采集等场景
3. mq常见问题
消息顺序问题:消费者固定,比如kafka到一个指定partition。缺点是并发度较低,消费端出现异常会阻塞消费。理论程序应该保证消息的顺序,而不是靠消息中间件保证顺序。
消息重复问题:网络不可达会造成消息重复,比如发生的时候网络超时,生产者重新发了一次。消息重复无可避免,需要消费端幂等处理。