RabbitMQ养成
文章平均质量分 56
从0开始 我们来快乐的玩耍rabbit吧
vcaml7717
不要辜负命运的托付
展开
-
RabbitMQ养成记 (1. 安装及配置)
然后浏览器输入 linux ip :15672 (rmq的端口是5672)注意 erlang的版本要和rabbitMQ相对应。不要下载最新的rabbitMQ安装包 最新的不稳定。在上面的那个管理台页面里面:会显示找不到配值文件。所以我们还需要配置一下配置文件。重启一下服务 让配置文件生效。原创 2023-05-14 12:47:29 · 92 阅读 · 0 评论 -
RabbitMQ养成记 (2. java操作MQ快速入门,日志监控,消息追踪)
创建好队列之后, 紧接着就是发送消息 publish这个方法 这个参数也很多 每个参数看一下。这里给新手兄弟的建议,这种技术性的学习 一定要先动手,从简单的地方动手,一步一步来,不然上来就搞理论或者复杂的应用很难坚持学下去。先把该配置的配置了。你主要知道有这么个东西 当你想要追踪消息日志的时候 知道去哪看就好了。所谓的回调就是 它站在这里等 等到有消息的时候 它再调用这个方法。当我们发送一条消息的时候,这个交换机也会发一条相关的更详细的消息。当然开发的同学 不需要太深究这个 这种监控一般都是运维的活。原创 2023-05-14 22:59:04 · 893 阅读 · 0 评论 -
RabbitMQ养成记 (3.MQ的简单工作模式 和 Pub/sub 订阅模式)
上一篇是一个简单的helloworld。我们直接发直接收 这种是最简单的。原创 2023-05-15 15:23:14 · 631 阅读 · 0 评论 -
RabbitMQ养成记 (4. MQ的DIRECT 路由模式)
在订阅模式里面 它像一个群聊里面的群发一样,交换机无差别 的给所有队列, 但是这种情况比较泛化。这个模式就更有意思了, 或者说 它比 订阅模式更复杂 更定制化一点。还记得之前那个 路由key参数吗?routingKey。1 发给一个神族消费者。2 发给2个人族消费者。原创 2023-05-15 16:33:59 · 60 阅读 · 0 评论 -
RabbitMQ养成记 (5. MQ的topics模式)
Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。其实你直接用框架和集成 这样对你的学习和成长是不利的,因为你不知道框架的里面到底干了些什么,你对他的理解 也会浅很多。所以一定要把初级的都看看 多动手敲一遍。 audit.#:能够匹配audit.irs.corporate 或者 audit.irs。很多兄弟尤其是入门的编程新手 会觉得 直接看springboot的集成就好了 这些用不到。我给Q1的绑定规则是 T.# ,我给Q2的绑定规则是 T.*原创 2023-05-15 17:30:37 · 814 阅读 · 0 评论 -
RabbitMQ养成记 (6. spingboot 集成 rabbitMQ,生产者/消费者)
这种配置的优点就是 将对象 交给spring管理 ,不需要我们自己new了。搞springboot的那群人 不喜欢造轮子,就喜欢搞各种集成。很方便对吧 对比之前上一篇里面 我们写的那一堆。消息发过去了 且创建了这样一个队列。原创 2023-05-15 21:26:30 · 616 阅读 · 0 评论 -
RabbitMQ养成记 (7. 消息可靠性投递)
rabbitTemplate.setConfirmCallback()我们调用了这个方法,在里面用匿名内部类:(新手不懂匿名内部类的看这篇:)简单来说就是 你的消息发放给 exchange 这个过程中 有可能丢失或者失败。来调用confirm方法 里面的第二个参数boolean 就是标志是否成功。这时候需要一个回调机制来监控 发送结果 必要时还要返回信息。什么是消息的可靠性呢?原创 2023-05-16 01:37:35 · 617 阅读 · 0 评论 -
RabbitMQ养成记 (8. 消费者接受消息可靠性 consumer Ack)
而不使用注解的情况下,需要显式实现MessageListener接口并重写onMessage方法,是一种传统的方式来定义 RabbitMQ 的消息监听器。而使用@RabbitListener注解的方式,是Spring AMQP提供的一种更简化和方便的方式,用于声明消息监听器的方法。使用@RabbitListener注解的方法不需要显式实现MessageListener接口,是因为框架会自动处理消息的转换,并将消息内容作为方法的参数传递进去。然后我们把原来的代码扩充一下 在这里实现 手动的ack。原创 2023-05-16 04:25:44 · 845 阅读 · 0 评论 -
RabbitMQ养成记 (9.高级特性:消费端限流 和TTL)
就可以了 你想每次拉去多少条消费 就设置多少/、。其实这个在springboot之中非常简单。原创 2023-05-16 04:35:39 · 83 阅读 · 0 评论 -
RabbitMQ养成记 (10.高级特性:死信队列,延迟队列)
ok我们实践了两种 第三种 超过队列长度的很简单 你设一个队列长度max=10 然后for循环往里面塞进去>10 超过的就会进入dlx 这种很简单。就是当消息成为 dead message之后,可以重新发到另外一台交换机,这个交换机就是DLX。注意这里的有翻译歧义, 这里的DLX 指的是 交换机 ,而不是一个队列。首先你在发送端 需要有2个队列 一个正常队列 一个私信队列。如果为true 那它就会打回到正常队列 然后不停的给你发。我们监听正常的队列 然后接受到消息之后。·这是超时的消息进入DLX的情况。原创 2023-05-16 12:40:40 · 912 阅读 · 0 评论 -
RabbitMQ养成记 (11. 什么是幂等性保障)
但是最后要导致一样的结果。这笔转账 你发了一次,但是系统中由于其他原因,它产生了两条一样的消息,这时候最后能一条起作用 不然你不就扣成100了对吧。每条消息都附带一个唯一标识符,该标识符可以是消息中的某个字段或者通过对消息内容进行哈希计算得到。就是我们设置一个版本号, 当这条语句在数据库中执行的时候 版本号发生变更,这样再来的消息就不会再执行了。注意幂等性 是一样的消息 才有幂等性的说法 如果说你两条消息是有差别的,那就没有幂等性的说法了。所谓的幂等性就是 因为各种原因 造成了发送方发送了两条相同的消息。原创 2023-05-16 18:13:59 · 58 阅读 · 0 评论