![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rabbitMQ
文章平均质量分 65
做一道光
互联网软件开发,已转汽车嵌入式软件开发
展开
-
rabbitMQ集群
把需要的队列做成镜像模式,存在于多个节点,数据Rabbitmq的HA方案.该模式解决了上述问题,其实质和普通模式的不同之处在于,消息实体会主动在镜像节点间同步,而不会在consumer取数据时临时拉取.该模式带来的副作用也很明显,除了降低系统性能意外,如果镜像队列过多,加之有大量的消息进入,集群内部的网络带宽将会被这种同步通讯大大消耗掉,所以在对可靠性要求较高的场合中适用.文件的同步都会失败,因此必须要修改这个文件的权限。此时两台虚拟机里面的cookie都是一样的。进入两个虚拟机控制台,查看控制台的消息。原创 2022-11-08 20:56:15 · 1825 阅读 · 0 评论 -
springboot集成rabbitmq:fanout、topic
编写Fanout模式的消息接收其他模块和上文保持一致ReceiveServiceImpl实现类。原创 2022-11-08 16:30:53 · 1028 阅读 · 0 评论 -
springboot集成rabbitmq:direct
2.修改springboot的配置文件为application.yml。1.创建rabbit-springboot-receive。1.创建rabbitmq-springboot的model。ReceiveServiceImpl实现类。SendServiceImpl实现类。3.ReceiveService接口。3.SendService接口。再次发送消息也可以持续的接收消息。5.在入口函数中运行代码。原创 2022-11-07 22:35:31 · 382 阅读 · 0 评论 -
rabbitMQ:消费者确认模式
消费者在声明队列时,可以指定noAck参数,当noAck=false时,RabbitMQ会等待消费者显式发回ack信号后才从内存(和磁盘,如果是持久化消息的话)中移去消息。basicReject():是接收端告诉服务器这个消息我拒绝接收,不处理,可以设置是否放回到队列中还是丢掉,而且只能一次拒绝一个消息,官网中有明确说明不能批量拒绝消息,为解决批量拒绝消息才有了basicNack。如果不加basicAck方法会导致消息确认会全部转入上图的unacked队列,表示消息可以重复使用。消费者确认模式:手动确认。原创 2022-11-07 20:21:06 · 1930 阅读 · 0 评论 -
rabbitMQ:发送者确认模式(普通确认、批量确认、异步确认)
发送者模式是事务的改进,例如如果这些消息出错概率非常低,但每次发送消息都要通过事务,会导致效率非常低。而发送者确认模式和事务大致是一样的,都能保证消息能够发送成功,本质区别在于事务是如果程序出现问题,会拒绝事务提交;而发送者确认模式,如果程序出现问题,会补发消息。Confirm发送方确认模式使用和事务类似,也是通过设置Channel进行发送方确认的,最终达到确保所有的消息全部发送成功。方式一:channel.waitForConfirms()普通发送方确认模式;点击了两次运行,所以数据是200。原创 2022-11-07 12:25:25 · 1139 阅读 · 0 评论 -
rabbitMQ:事务性消息发送和接收
事务消息与数据库的事务类似,只是MQ中的消息是要保证消息是否会全部发送成功,防止丢失消息的一种策略。1.channel.txSelect()声明启动事务模式;3.channel.txRollback()回滚事务;2.channel.txCommint()提交事务;1.通过AMQP提供的事务机制实现;2.使用发送者确认模式实现;原创 2022-11-07 10:46:35 · 1518 阅读 · 0 评论 -
rabbitMQ:绑定Exchange发送和接收消息(topic)
1、Topic模式的消息接收时必须要指定RoutingKey并且可以使用# 和 *来做统配符号,#表示通配任意一个单词 *表示通配任意多个单词,例如消费者的RoutingKey为test.#或#.myRoutingKey都可以获取RoutingKey为test.myRoutingKey发送者发送的消息。接收类1(aa),接收类3(aa.#)可以接收到消息。接收类2(aa.*)和接收类3(aa.#)可以接收消息。3)当RoutingKey为aa.bb.cc时。接收类3(aa.#)可以接收消息。原创 2022-11-06 22:33:12 · 960 阅读 · 0 评论 -
rabbitMQ:绑定Exchange发送和接收消息(fanout)
1、使用fanout模式获取消息时不需要绑定特定的队列名称,只需使用channel.queueDeclare().getQueue();2、这种模式中可以同时启动多个接收者只要都绑定到同一个Exchang即可让所有接收者同时接收同一个消息是一种广播的消息机制。fanout模式的消息需要将一个消息同时绑定到多个队列中因此这里不能创建并指定某个队列。由于fanout是广播机制,所以需要先有接收方接收,发送方才不会丢失数据。编写fanout消息接收类。编写fanout消息发送类。3.查看两个接收类的情况。原创 2022-11-06 21:59:47 · 1034 阅读 · 0 评论 -
rabbitMQ:绑定Exchange发送和接收消息(direct)
在这种模式下生产者只面向 Exchange 发布消息,消费者只面向 Queue 消费消息,Exchange 定义了消息路由到 Queue 的规则,将各个层面的消息传递隔离开,使每一层只需要关心自己面向的下一层,降低了整体的耦合度。Exchange 就类似于一个交换机,将各个消息分发到相应的队列中。AMQP 协议中的核心思想就是生产者和消费者的解耦,生产者从不直接将消息发送给队列。注意:使用direct消息模式时必须要指定RoutingKey(路由键),将指定的消息绑定到指定的路由键上。原创 2022-11-06 20:52:18 · 2116 阅读 · 0 评论 -
RabbitMQ消息发送和接收(实例)
的消息只能被同一个消费者消费,如果没有消费监听队列那么消息会存放到队列中持久化保存,直到有消费者来消费这个消息,如果有消费者监听队列则立即消费发送到队列中的消息。4.模拟连续向队列中放两次消息,这两条消息的队列名称相同,内容不同。再次返回消息队列,此时消息队列已经没有了消息,消息已经模拟出队了。7.此时进入控制台查看队列,发现队列中的消息已经全部取出。修改Idea消息的内容再向队列里发送一次消息。修改Idea消息的内容再向队列里发送一次消息。模拟从队列中取出消息,查看取出的消息内容。原创 2022-11-06 16:19:52 · 10701 阅读 · 0 评论 -
RabbitMQ消息发送和接收
fanout 交换器不处理路由键,只是简单的将队列绑定到交换器上,每个发送到交换器的消息都会被转发到与该交换器绑定的所有队列上。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息可能需要持久性存储)等。上面是MQ的基本抽象模型,但是不同的MQ产品有着不同的机制,RabbitMQ实际基于AMQP协议的一个开源实现,因此RabbitMQ内部也是AMQP的基本概念。原创 2022-11-06 14:26:47 · 1251 阅读 · 0 评论 -
RabbitMQ常用命令
vhost是RabbitMQ中的一个命名空间,可以限制消息的存放位置利用这个命名空间可以进行权限的控制有点类似Windows中的文件夹一样,在不同的文件夹中存放不同的文件。1、授权命令:rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。read:一个正则表达式match哪些配置资源能够被该用户访问。原创 2022-11-05 18:03:18 · 5305 阅读 · 1 评论 -
RabbitMQ安装
一般来说安装 RabbitMQ 之前要安装 Erlang ,可以去Erlang官网下载。1.将Erlang源代码包otp_src_19.3.tar.gz上传到Linux的/home目录下。安装RabbitMQ之前必须要先安装所需要的依赖包可以使用下面的一次性安装命令。8、将这些配置填写到profile文件的最后。3、手动创建erlang 的安装目录。4、进入erlang的解压目录。5、配置erlang的安装信息。2、解压erlang 源码包。此时已经全部安装成功了。安装RabbitMQ。原创 2022-11-05 16:39:17 · 676 阅读 · 0 评论 -
RabbitMQ概述
这种场景下就可以用 MQ ,在下单的主流程(比如扣减库存、生成相应单据)完成之后发送一条消息到 MQ 让主流程快速完结,而由另外的单独线程拉取MQ的消息(或者由 MQ 推送消息),当发现 MQ 中有发红包或发短信之类的消息时,执行相应的业务逻辑。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。原创 2022-11-05 15:44:17 · 628 阅读 · 0 评论