RabbitMQ
玩耍RabbitMQ的各种姿势,在这个专栏下面,我将和读者们一起学习在各种场景下RabbitMQ 的不同模式。选择最合适的应用模式去完成特殊场景需求。
学习时长两年半的小学生
我要一步一步往上爬~
展开
-
Could not deserialize object type
用RabbitMQ踩的坑,明明生产者用User对象传过去,消费端用User对象接,但是一直报错,本地定义生产者和消费者的话,又没有问题。百思不得其解,后来才知道AMQP协议,传对象的话,必须全类名必须相等,同时工程目录结构必须相等。他才认可是同一对象,不然的话,还是老老实实用String , List , Map 这些传,消费端接到了再转类型出来吧~...原创 2020-12-01 17:13:07 · 1989 阅读 · 1 评论 -
RabbitMQ中的死信队列和消息超时的简单使用
概念:消息超时这个很简单,队列中的消息,不设置超时时间并且消费者宕机,就会越放越多,所以我们可以在创建queue的时候设置一个队列大小和队列超时时间。死信交换机和死信队列:专门收集一些拒绝接受的,超时未消费的,超出了队列大小的消息任务。使用场景:(1)10件商品,100个用户进来购买,队列中大小设置为10,只允许10用户购买请求进来,其他的都reject,reject的这部分都会自动进行死信队列中,这也可以换成超出队列大小的情况。(2)10件商品,100个用户进来购买,全部购买请求都放过期时原创 2020-10-08 09:43:18 · 1777 阅读 · 1 评论 -
RabbitMQ玩Topic主题模式
这个功能需求一直都在,最近也是忙着写业务代码没来得及做实验demo的小总结,这个功能在以前用过的功能中就是关注频道的推送。国庆节终于有空了,就着自己机器的小例子来记录一下~基本的搭建和基本概念不再说,可以看:RabbitMQ在SpringBoot中的简单使用RabbitMQ的几个重要基础概念!没看之前不要说搭MQ用MQ!直接开始:(1)Controller中:@Autowired private RabbitMqService rabbitMqService;@GetMapping(原创 2020-10-03 14:38:49 · 685 阅读 · 0 评论 -
RabbitMQ的几个重要基础概念!没看之前不要说搭MQ用MQ!
理解几个重要概念(1)Virtual Host : 虚拟主机用于最高层级的逻辑隔离,不同的用户权限能操作的虚拟主机也不同,这就实现了根据一定规则(人群,地域,科目,部门)的权限划分。例如下面两个用户虽然都是Administrator管理员,但是它们的访问权限不同,能管理的虚拟主机也不同。(2)Exchange:交换机根据我们自己配置的规则,将消息路由到一个或者多个消息队列中。(3)Queues:消息队列消息队列就是用来存放消息的地方,它跟交换机是相对独立创建的,同一个虚拟主机下就属于兄弟关原创 2020-10-03 14:17:13 · 343 阅读 · 0 评论 -
Channel closed; cannot ack/nack 和 MQ的重复消费/重复发送消息问题(记RabbitMQ使用的几个小坑)
首先上改良后的代码(改良前的代码和基本的配置使用在:RabbitMQ的介绍/安装和SpringBoot集成简单使用(MacBook版)):Application.yml:spring: application: name: cloud-purchase-service rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: 123456Controller:@Autowired原创 2020-09-28 11:09:48 · 12982 阅读 · 13 评论 -
RabbitMQ新增用户和权限管理
实习生问:为什么要新增用户呢?用原来的Guest , 不也是能用吗 ?提出这个问题的,肯定没在实际项目开发中用到过MQ,应该是在本地小demo玩了一下。Guest是MQ默认的Administrator,大家都知道,所以它很不安全,而且它权限太大,很容易被滥用,所以它是不允许远程登录MQ管理后台界面的,比如你在服务器A部署的MQ,在你本地机器想看看管理面板,不行!所以要新增用户。怎么新增?两种方式:(1)命令行:rabbitmqctl add_user 用户名 密码(2)先用Guest登上管理原创 2020-09-27 15:19:46 · 2383 阅读 · 1 评论 -
RabbitMQ的介绍/安装和SpringBoot集成简单使用(MacBook版)
RabbitMQ是什么?本来想老规矩百度图镇楼的,想了想算了,自己总结吧,把自己最真实的感受写出。第一次接触到RabbitMQ,是在我刚毕业的时候,还是个愣头青,在一家外包公司傻乎乎的做CURD。有个秒杀场景,组长让我使用RabbitMQ来做延时入库,我懵逼了,完全没听说过的东西,于是去学,去用。后来在名创优品做一个用户邮箱系统有个场景又顺利用到了,所以实习生的经验积累真的很重要~rabbit,理解为兔子,很快很快。MQ,其实就是Message Queue (消息管道的英文缩写)。管道队列,理解成水管原创 2020-05-13 18:40:48 · 434 阅读 · 0 评论