
RabbitMQ
文章平均质量分 91
读书笔记,总结RabbitMQ重要设计思想
镰刀韭菜
视野,意志,品格;目标,坚持,实践
展开
-
【RabbitMQ】消息队列中间件学习之RabbitMQ(13)
RabbitMQ扩展内容消息追踪1.1 Firehose1.2 rabbitmq_tracing插件负载均衡2.1 在客户端内部实现负载均衡2.2 使用HAProxy实现负载均衡2.3 使用Keepalived+HAProxy实现高可靠负载均衡2.4 使用Keepalived+LVS实现负载均衡消息追踪目的:跟踪记录消息的投递过程,协议开发人员或运维人员快速定位问题。1.1 Firehose在RabbitMQ中可以使用Firehose功能来实现消息追踪,其可以记录每一次发送或消费消息的过程,方面进行原创 2021-02-13 17:57:52 · 653 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(12)
网络分区1. 网络分区的意义2. 网络分区的判定3. 网络分区的模拟4. 网络分区的影响4.1 未配置镜像4.2 已配置镜像5. 手动处理网络分区6. 自动处理网络分区6.1 pause-minority模式6.2 pause-if-all-down模式6.3 autoheal模式6.4 挑选哪种模式1. 网络分区的意义当一个集群发生网络分区时,集群会分为两个部分或者更多,它们各自为政,互相都认为对方分区内的节点已经挂了,包括队列、交换器及绑定等元数据的创建和销毁都处于自身分区内,与其他分区无关。分区原创 2021-02-13 16:06:25 · 863 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(11)
RabbitMQ高阶RabbitMQ存储机制1.1 队列的结构1.3 惰性队列内存及磁盘告警2.1 内存告警2.2 磁盘告警流控(Flow Control)3.1 流控的原理3.2 案例:打破队列的瓶颈镜像队列镜像队列的结构补充要点RabbitMQ存储机制持久化的消息在到达队列时就被写到磁盘,如果可以,则会在内存中保存一份备份以提高性能,当内存吃紧时会从内存中清除;非持久化消息一般只保存在内存中,内存吃紧时会保存到磁盘中以节省内存空间;两种消息类型都是在RabbitMQ的“持久层”中完成。持久层是逻辑原创 2021-02-11 00:39:19 · 653 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(10)
RabbitMQ分布式部署1. Federation1.1 联邦交换器1.2 联邦队列1.3 Federation的使用2. Shovel2.1 Shovel原理2.2 Shovel的使用2.3 案例:消息堆积的治理RabbitMQ可以通过3种方式实现分布式部署:集群、Federation和Shovel。这3种方式不是互斥的,可以灵活组合来达到分布式部署的目的。1. FederationFederation插件设计的目的是使RabbitMQ在不同的Broker节点之间进行消息传递而无需建立集群,其功能原创 2021-02-09 18:24:07 · 503 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(9)
RabbitMQ运维1. 集群搭建1.1 多机多节点配置1.2 集群节点类型1.3 剔除单个节点1.4 集群节点的升级1.5 单机多节点配置2. 查看服务日志2.1 启动RabbitMQ服务2.2 关闭RabbitMQ服务2.3 建立集群2.4 其他3. 单节点故障恢复4. 集群迁移4.1元数据重建1. 集群搭建RabbitMQ集群允许消费者和生产者在RabbitMQ单个节点崩溃的情况下继续运行,它可以通过添加更多的节点来线性地扩展消息通信的吞吐量,当失去一个RabbitMQ节点时,客户端能够重新连接到原创 2021-02-08 22:27:30 · 458 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(8)
RabbitMQ配置环境变量配置文件配置项参考资料RabbitMQ提供了三种方式来定制化服务:环境变量(Environment Variables)。通过环境变量配置服务端参数,例如节点名称、RabbitMQ配置文件的地址、节点内部通信端口等配置文件(Configuration File)。通过配置文件定义服务和插件设置,例如TCP监听端口、以及其他网络相关的设置、内存限制、磁盘限制等;运行时参数和策略(Runtime Parameters and Policies)。通过运行时参数和策略定义集群原创 2021-02-08 11:53:18 · 698 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(7)
RabbitMQ管理多租户与权限用户管理Web端管理应用与集群管理应用管理集群管理服务端状态HTTP API接口管理参考资料多租户与权限**每一个RabbitMQ服务器都能创建虚拟的消息服务器,称之为虚拟主机(vhost),每一个vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换器及绑定关系等,并且它拥有自己独立的权限。**vhost就像是虚拟机和物理服务器一样, 它们在各个实例间提供逻辑上的分离,为不同程序安全保密地运行数据,它既能将同一个RabbitMQ中的众多客户区分原创 2021-01-29 17:52:03 · 932 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(6)
RabbitMQ进阶(下)RPC实现持久化生产者确认事务机制发送方确认机制发送端确认模式的实现原理开启确认模式的方法三种实现方式消费者要点介绍消息分发消息顺序性弃用QueueingConsumer消息传输保障RPC实现RPC,即Remote Procedure Call,即远程过程调用,它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络的技术。RPC的主要功能是让构建分布式计算更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。通俗地说就是两台服务器A,B,一个应用部署在A服务器上原创 2021-01-28 13:23:28 · 478 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(5)
RabbitMQ进阶消息何去何从?消息何去何从?在正常情况下,生产者产生并发送一条消息然后被交换器正确路由到某个队列中。但是如果一条消息不能被正确路由到某个队列时,那么这条消息该何去何从呢?RabbitMQ提供以下几个处理方案:(1)将消息返回给生产者;(2)直接将消息丢失;(3)使用备份交换器将未能被路由的消息存储起来。...原创 2021-01-25 13:52:38 · 282 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(4)
RabbitMQ之客户端开发向导客户端开发:消费消息、消息确认与拒绝、关闭连接消费消息推模式拉模式两种模式优缺点对比:消费端的确认与拒绝关闭连接上文学习过客户端开发中的创建连接、发送消息等操作,这里接着学习如何消费消息、消息确认以及关闭连接等。客户端开发:消费消息、消息确认与拒绝、关闭连接消费消息在RabbitMQ中有两种消息处理的模式,一种是推模式/订阅模式/投递模式(也叫Push模式),消费者调用channel.basicConsume方法订阅队列后,由RabbitMQ主动将消息推送给订阅队列的原创 2021-01-20 20:59:40 · 487 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(3)
RabbitMQ之客户端开发向导客户端开发:建立连接,创建交换器和队列,发送消息1. 连接RabbitMQ2. 使用交换器(exchange)和队列(queue)exchangeDeclare方法详解queueDeclare方法详解queueBind方法详解exchangeBind方法详解3. 何时创建4. 发送消息RabbitMQ Java客户端使用com.rabbitmq.client作为顶级包名,关键的Class和Interface有Channel、Connection、ConnectionFact原创 2021-01-20 14:34:10 · 546 阅读 · 0 评论 -
【RabbitMQ】使用Docker搭建RabbitMQ主从架构环境
使用Docker搭建RabbitMQ主从架构环境具体过程如下:root@node01:~# docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.8.9-managementUnable to find image 'rabbitmq:3.8.9-management' locally3.8.9-原创 2021-01-19 21:38:29 · 845 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(2)
RabbitMQ基础理论RabbitMQ相关概念生产者和消费者队列交换器、路由键、绑定RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。整体模型如下:RabbitMQ相关概念生产者和消费者Producer:生产者,创建消息,然后发布到RabbitMQ中。消息一般可以包括2个部分:消息体和标签(Label)。消息体一般称为payload。实际中,消息体一般是一个带有业务逻辑结构的数据,比如一个JSON字符串。消息的标签用来表示这条消息,比如一个交换器的名称和一个路由键原创 2021-01-18 17:37:58 · 447 阅读 · 0 评论 -
【RabbitMQ】消息队列中间件学习之RabbitMQ(1)
RabbitMQ简介1. MQ引言1.1 什么是MQ?MQ有哪些?不同MQ的特点2. RabbitMQ安装和简单使用参考资料1. MQ引言1.1 什么是MQ?消息队列中间件(Message Queue Middleware,简称为MQ)是指利用高效可靠的消息传输机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,它可以在分布式环境下扩展进程间的通信。生产者不断地向消息队列中生成消息,消费者不断的从队列中获取消息,因为消息的生成和消费都是异步的,而且只关心原创 2021-01-14 00:04:23 · 371 阅读 · 0 评论