
RabbitMQ消息中间件学习
文章平均质量分 81
RAIN 7
双非二本进大厂,2024美团技术岗校招生,上岸测试开发工程师。越努力,越幸运!
展开
-
RabbitMQ 学习(七)----发布确认
保证生产者将信息成功的发送到 RabbitMQ的 server端了,那么broker就会回一个确认,如果没有收到或者收到拒绝信息,那么说明可能网络不好没有发送成功,server端宕机了,broker拒绝接收等情况,如果不进行后续处理,那么信息就会丢失,生产者收到失败的消息使用回调函数在进行处理。如果队列和信息是持久化的,那么确认消息会在将消息写入磁盘之后再发出,broker返回的确认包含 确认消息的序列号,还可以设置 multiple,表示此序号前的所有消息都得到了处理。2、设置队列中的消息持久化。原创 2022-10-06 20:31:19 · 2079 阅读 · 1 评论 -
RabbitMQ 学习(六)---- 路由订阅模型
消费者2 临时队列因为订阅了 “info” 路由的信息,所有只能接收到 生产者发送的"info"路由中的信息,而 “warning” 路由信息中的信息接收不到。消费者1因为 临时队列订阅了 “info”、“warning” 路由,所以生产者的信息都能接收到。查看队列信息,消费者1 的临时队列,接受了交换机路由 “info”、"warning"的信息。临时队列订阅了 aaa交换机 中"info" 、“warning” 的路由信息。消费者2的临时队列,接受了交换机路由"info" 的信息。原创 2022-09-30 09:45:24 · 783 阅读 · 1 评论 -
RabbitMQ 学习(五)---- Fanout 广播模型
所有消费者只要通过一个队列进行绑定,那么都能听到,都能消费该信息,这就是广播模式。这种广播模式很像,就是生产者把通知的内容都录音到电台(此时在后台中查看 交换机的绑定情况,两个临时队列绑定交换机。FProvider 发送消息到交换机 “exch” 中。消费者1 临时队列绑定交换机,信道通过队列 收到消息。消费者2 临时队列绑定交换机,信道通过队列 收到消息。)里,消费者如果想要听到,必须使用该频率的耳机(生产者使用信道发送消息到交换机中。消费者2 的代码与上面一模一样。声明交换机(名字+类型)原创 2022-09-28 21:29:44 · 571 阅读 · 1 评论 -
RabbitMQ 学习(四)---- 工作队列模式
在之前的公平竞争机制下,说是按照顺序给每一个消费者数据,其实在发送给消费者之前在内部已经计算好了,给消费者一第1、3、5、7、9数据,一次性发送,给消费者二第2、4、6、8、10条数据,然后一次性发送,如果我们手动确认的话,那么相当于一次确认一大批,队列经过确认后进行删除,如果在后续处理业务中挂掉了,照样消息已经删除了。就是说处理快的消费者处理完业务会很快的手动确认,然后再次进行接收新的消息,处理慢的消费者经过一段时间处理之后再进行确认,就会能者多劳,业务处理快的接受的消息多,处理满的接受的少。原创 2022-09-20 11:32:11 · 948 阅读 · 1 评论 -
RabbitMQ 学习(三)---- 连接工具类
之前我们写生产者消费者模型的时候,会有很多冗余代码,比如生产者和消费者都需要创建连接工厂、设置连接配置、以及关闭资源等操作。我们打算将这些冗余的操作封装成一个工具类,我们直接调用类得到相关的信息即可,不必每次都写一些连接的配置信息。使用连接工厂,使用单例模式,static只设置一次配置,创建获取连接的方法,创建关闭资源的方法。所以现在,在之前的生产者、消费者Hello World 模型的代码中可以省略很多代码了。原创 2022-09-17 23:12:55 · 2762 阅读 · 1 评论 -
RabbitMQ 学习(二)---- HelloWorld 简单模型
这里需要说一下,在最后的业务操作的参数是一个 Consumer,设置一个接口,我们需要写一个实现类,重写其中的 方法,对接收的message进行后续的业务操作。需要注意的一点是,接收方在接收queue中的数据的时候,声明queue必须和 发送方的保持一致,所有条件都得保持一致,否则接收不到。在工厂中需要设置连接的主机名、端口号、客户端的用户名、密码、虚拟主机等,为之后的连接做好预先准备。默认的交换机有一个特点,只要你的routerKey与这个交换机中有同名的队列,他就会自动路由上。如何在信道中传递数据呢?原创 2022-09-15 23:21:47 · 1621 阅读 · 1 评论 -
RabbitMQ 学习(一)---- 安装与基本配置
在这里安装指南,自己是什么系统就下载RabbitMQ的安装包,同时 最下面的Erlang/OTP 也得下载,因为 RabbitMq 是 Erlang 写的,所以需要安装该语言的相关环境。点击具体的relang版本,下载 centos7 下的 erlang npm 包。往后翻页,找到对应的rabbitMQ下载版本,点击Assets,下载 npm包。进入rabbitMQ安装指南,点击最新版本安装、或不支持的版本安装链接。进入rabbitMQ的安装指南,点击 erlang 的零依赖版本安装。原创 2022-09-10 15:58:34 · 1508 阅读 · 0 评论