RabbitMQ的优劣势
优势:支持集群化、高可用部署架构、消息高可靠支持
复杂系统的解耦;
复杂链路的异步调用
瞬时高峰的削峰处理。
这里提一下RocketMQ,是阿里开源的,经过阿里的生产环境的超高并发、高吞吐的考验、性能卓越、同时支持分布式事务等特殊场景。关键是它基于java开发,可以进行二次开发。
同时kafka也是一款消息中间件,它的优势在于专为超高吞吐量的实时日志采集、实时数据同步、实时数据计算等场景来设计。
劣势:
1.系统的可用性降低
一旦Rabbitmq 挂了,消息无法继续传输
2.系统的稳定性降低
如:系统发送了一条消息到中间件,突然由于网路故障等问题,数据丢失了;
插入重复数据、脏数据
大量的积压消息
所以我们要考虑,如何保证消息高可靠传递(0丢失)、消息幂等性传递(觉不重复);、百万消息积压的线上故障处理;
3.分布式一致性问题
如果C的数据保存数据库成功了,但是C把数据传入到中间件后,到达D报错,没有保存成功;