赞
踩
解耦、异步、削峰
优点:解耦、异步、削峰
缺点:
1)系统可用性降低,系统引入的外部依赖越多,越容易挂掉,MQ挂了之后导致整个系统崩溃。
2)系统复杂度提高,硬生生加个MQ,怎么保证消费没有重复消费?怎么出来消费数据没有丢失?怎么保证消息传递的顺序性,一致性等问题?
3)一致性问题,A系统处理完后直接将返回成功了,那么消费者B,C,D三个系统中,只有B,C系统写入库中成功,D系统写入失败,如何保证数据的一致性问题呢?
事务的提交
通过发送方确认(publisher confirm)机制实现
事务机制和publisher confirm机制是互斥的,不能共存
durable=true;
channel.exchangeDeclare(EXCHANGE_NAME, "direct", true);
durable=true;
channel.queueDeclare(QUEUE_NAME, true, false, false, null)
deliveryMode模式设置为2
new AMQP.BasicProperties().builder().deliveryMode(2).build();
-------------------------------------------------https://www.cnblogs.com/zwwhnly/p/10953388.html--------这个比较好----------------------
broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束
queue 具有自己的 erlang 进程;exchange 内部实现为保存 binding 关系的查找表;channel 是实际进行路由工作的实体,即负责按照 routing_key 将 message 投递给 queue 。由 AMQP 协议描述可知,channel 是真实 TCP 连接之上的虚拟连接,所有 AMQP 命令都是通过 channel 发送的,且每一个 channel 有唯一的 ID。一个 channel 只能被单独一个操作系统线程使用,故投递到特定 channel 上的 message 是有顺序的。但一个操作系统线程上允许使用多个 channel
vhost 可以理解为虚拟 broker ,即 mini-RabbitMQ server。其内部均含有独立的 queue、exchange 和 binding 等,但最最重要的是,其拥有独立的权限系统,可以做到 vhost 范围的用户控制。当然,从 RabbitMQ 的全局角度,vhost 可以作为不同权限隔离的手段(一个典型的例子就是不同的应用可以跑在不同的 vhost 中)
由于TCP连接的创建和销毁开销较大,且并发数受系统资源限制,会造成性能瓶颈。RabbitMQ使用信道的方式来传输数据。信道是建立在真实的TCP连接内的虚拟连接,且每条TCP连接上的信道数量没有限制。
若该队列至少有一个消费者订阅,消息将以循环(round-robin)的方式发送给消费者。每条消息只会分发给一个订阅的消费者(前提是消费者能够正常处理消息并进行确认)。
从概念上来说,消息路由必须有三部分:交换器、路由、绑定。生产者把消息发布到交换器上;绑定决定了消息如何从路由器路由到特定的队列;消息最终到达队列,并被消费者接收。
消息发布到交换器时,消息将拥有一个路由键(routing key),在消息创建时设定。
通过队列路由键,可以把队列绑定到交换器上。
消息到达交换器后,RabbitMQ会将消息的路由键与队列的路由键进行匹配(针对不同的交换器有不同的路由规则)。如果能够匹配到队列,则消息会投递到相应队列中;如果不能匹配到任何队列,消息将进入 “黑洞”
在非 cluster 模式下,元数据主要分为 Queue 元数据(queue 名字和属性等)、Exchange 元数据(exchange 名字、类型和属性等)、Binding 元数据(存放路由关系的查找表)、Vhost 元数据(vhost 范围内针对前三者的名字空间约束和安全属性设置)。在 cluster 模式下,还包括 cluster 中 node 位置信息和 node 关系信息。元数据按照 erlang node 的类型确定是仅保存于 RAM 中,还是同时保存在 RAM 和 disk 上。元数据在 cluster 中是全 node 分布的
————————————————
版权声明:本文为CSDN博主「jeffrey_ding」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jerryDzan/article/details/89183625
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。