MQ作用与主流MQ对比

为什么用MQ?

解耦异步:系统间接口调用,耦合性高,一旦某个系统出问题,整个流程报错,引入mq,可以将消息发给mq就可以了,如果库存挂了,重启后再去消费就行了。
MQ作用与主流MQ对比_第1张图片
削峰:减轻数据库压力
MQ作用与主流MQ对比_第2张图片
数据分发:
MQ作用与主流MQ对比_第3张图片

用mq考虑问题?

1.可用性降低:mq宕机,影响业务
2.复杂性提高:同步消息如何保证幂等性?消息丢失问题如何处理?如何保证消息顺序性?
3.一致性问题:A处理完后,BCD都去处理,如果D处理失败,那么如何保证消息处理一致性?

几大主流MQ:

Activemq
小规模吞吐量,可能丢消息

Rabbitmq
万级吞吐量,功能完备,管理界面友好,社区活跃,erlang开发(性能好并发高,但erlang很少人做,不好看源码),可用性ok,一般不丢消息

Rocketmq
10万级吞吐,阿里开源,社区活跃,topic可以有很多(几百几千),分布式扩展好,可支撑大规模吞吐,高并发,复杂业务场景,中大型公司用好一些

Kafka
10万级吞吐,功能简单,适合大数据实时计算和日志采集,社区不活跃

总结:

下一篇总结RabbitMQ内部知识体系,欢迎大家访问!

你可能感兴趣的:(【MQ】)