1)生产者发送消息到MQ,MQ接到消息数据 2)MQ将消息数据写入内存 3)发送ACK到生产者--等消息量多了--4)内存数据写入硬盘 6.4.3) 同步刷盘/ 异步刷盘 优缺点对比 同步刷盘:安全性高,效率低,速度慢(适用于对数据安全要求较高的业务) 异步刷盘:安全性低,效率高,速度快(适用于对数据处理速度要求较高的业务)...
二、消息队列优缺点 1、优点 上述已经说过,在于解耦、异步和削峰。 2、缺点 ①系统可用性降低: 系统引入的外部依赖越多,系统要面对的风险越高,拿场景一来说,本来ABCD四个系统配合的好好的,没啥问题,但是你偏要弄个MQ进来插一脚,虽然好处挺多,但是万一MQ挂掉了呢,那样你系统不也就挂掉了。 ②系统复杂程度提高...
3、可扩展性:RabbitMQ的分布式部署架构,支持快速扩容,从而适应处理大量消息流量、高并发的需求。 4、可靠性与易用性的平衡:相较于其他消息队列,RabbitMQ在保证可靠性的同时,使用起来较为简单。 缺点 1、性能问题:RabbitMQ在消息处理过程中,不同的配置选项会影响其性能,需要进行优化和调整。 2、消息传输延迟:Rabbit...
缺点:官方社区现在对于 ActiveMQ 5.x的版本维护越来越少,高吞吐量场景较少使用。 2、Kafka Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统。尤其在大数据上是个杀手锏,吞吐量在百万级,在数据采集、传输、存储的过程中发挥举足轻重的作用。 优点: 单机吞吐量: 百万级。 时效性...
2、异步解耦 上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高。 而异步调用则会解决这些问题。所以两层之间若要实现由同步到异步的转化,一般性做法就是,在这两 层间添加一个MQ层。 MQ优缺点 1、系统可用性降低 ...
下面是MQ的优缺点 1.2.1 优点1:应用解耦 考虑由订单系统与库存系统、支付系统、物流系统直接通过远程调用方式通信,模块耦合度较高的情况。 会存在问题: (1)容错性较低。 一个库存系统出问题,通信链路断了,订单下单就失败了。 (2)可维护性低 增加x系统,需要修改订单系统的代码。再加再改,撤回也改。 引入消息...
2、系统稳定性降低 还是上面那张图,大家再来看一下。 不知道大家有没有发现一个问题,这个链路除了MQ中间件挂掉这个可能存在的隐患之外,可能还有一些其他的技术问题。 比如说,莫名其妙的,系统C发了一个消息到MQ,结果那个消息因为网络故障等问题,就丢失了。这就导致系统D没有收到那条消息。
下面是MQ的优缺点 1.2.1 优点1:应用解耦 考虑由订单系统与库存系统、支付系统、物流系统直接通过远程调用方式通信,模块耦合度较高的情况。 会存在问题: (1)容错性较低。 一个库存系统出问题,通信链路断了,订单下单就失败了。 (2)可维护性低 增加x系统,需要修改订单系统的代码。再加再改,撤回也改。 引...
2、RabbitMQ现在是使用的比较多的,吞吐量也达到了万级,而且延时低,最好的一个优点就是它提供了一个后台管理系统,对于中小型公司来说很有用的;同时目前来看,社区活跃度也比较高。缺点就是开发语言使用的是erlang语言,对于Java开发者来说,erlang语言比较难以看懂,不能去深入的研究,只能简单的使用。