动力节点Rabbitmq-18-21章RabbitMQ集群与高可用

这篇具有很好参考价值的文章主要介绍了动力节点Rabbitmq-18-21章RabbitMQ集群与高可用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

18 RabbitMQ集群与高可用

RabbitMQ 的集群分两种模式,一种是默认集群模式,一种是镜像集群模式;
在RabbitMQ集群中所有的节点(一个节点就是一个RabbitMQ的broker服务器) 被归为两类:一类是磁盘节点,一类是内存节点;
磁盘节点会把集群的所有信息(比如交换机、绑定、队列等信息)持久化到磁盘中,而内存节点只会将这些信息保存到内存中,如果该节点宕机或重启,内存节点的数据会全部丢失,而磁盘节点的数据不会丢失;

18.1 默认集群模式

默认集群模式也叫 普通集群模式、或者 内置集群模式;
RabbitMQ默认集群模式,只会把交换机、队列、虚拟主机等元数据信息在各个节点同步,而具体队列中的消息内容不会在各个节点中同步;
动力节点Rabbitmq-18-21章RabbitMQ集群与高可用
元数据
队列元数据:队列名称和属性(是否可持久化,是否自动删除)
交换器元数据:交换器名称、类型和属性
绑定元数据:交换器和队列的绑定列表
vhost元数据:vhost内的相关属性,如安全属性等;
当用户访问其中任何一个RabbitMQ节点时,查询到的queue/user/exchange/vhost等信息都是相同的;
但集群中队列的具体信息数据只在队列的拥有者节点保存,其他节点只知道队列的元数据和指向该节点的指针,所以其他节点接收到不属于该节点队列的消息时会将该消息传递给该队列的拥有者节点上;
为什么集群不复制队列内容和状态到所有节点:

  1. 存储空间;

2)性能;
如果消息需要复制到集群中每个节点,网络开销不可避免,持久化消息还需要写磁盘,占用磁盘空间。
那么问题来了?
如果有一个消息生产者或者消息消费者通过amqp-client的客户端连接到节点1进行消息的发送或接收,那么此时集群中的消息收发只与节点1相关,这个没有任何问题;
如果客户端相连的是节点2或者节点3 (队列1数据不在该节点上),那么情况又会是怎么样呢?
如果消息生产者所连接的是节点2或者节点3,此时队列1的完整数据不在该两个节点上,那么在发送消息过程中这两个节点主要起了一个路由转发作用,根据这两个节点上的元数据(也就是指向queue的owner node的指针)转发至节点1上,最终发送的消息还是会存储至节点1的队列1上;文章来源地址https://www.toymoban.com/news/detail-428358.html

到了这里,关于动力节点Rabbitmq-18-21章RabbitMQ集群与高可用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RabbitMQ笔记一7-11章RabbitMQ工作模型【动力节点】

    broker 相当于mysql服务器,virtual host相当于数据库(可以有多个数据库) queue相当于表,消息相当于记录。   消息队列有三个核心要素:  消息生产者 、 消息队列 、 消息消费者 ; 生产者(Producer):发送消息的应用;(java程序,也可能是别的语言写的程序) 消费者(Con

    2023年04月26日
    浏览(16)
  • 【动力节点】最新rabbitmq笔记-1-6章What is RabbitMQ?

    动力节点最新RabbitMQ视频 RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件; RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色; AMQP协议(http://www.amqp.org),即 Advanced Message Queuing Protocol,高级消息

    2024年02月03日
    浏览(24)
  • (二)RabbitMQ实战——rabbitmq高可用集群搭建

    本节内容是关于rabbitmq高可用集群的部署搭建,使用的是centos7系统,我们准备三台服务器作为rabbitmq的高可用服务器,rabbitmq集群本身不是天然支持高可用的,我们通过配置rabbitmq服务器的镜像队列,以确保消息可以在集群中的多个节点上进行复制存储,提高可用性和容错性,

    2024年04月29日
    浏览(16)
  • 【RabbitMQ高可用集群架构】

    之前通过单机环境搭建起来的RabbitMQ服务有一个致命的问题,那就是服务不稳定的问题。如果只是单 机RabbitMQ的服务崩溃了,那还好,大不了重启下服务就是了。但是如果是服务器的磁盘出问题了,那问 题就大了。因为消息都是存储在Queue里的,Queue坏了,意味着消息就丢失了

    2024年02月04日
    浏览(18)
  • RabbitMQ高可用集群搭建

    理论简介 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ、RabbitMQ、Kafka、RocketMQ等。 Rabbi

    2024年02月20日
    浏览(22)
  • RabbitMQ高可用集群部署

    2023年06月29日
    浏览(27)
  • 【RabbitMQ】之高可用集群搭建

    一、RabbitMQ 集群原理 1、默认集群原理 2、镜像集群原理 3、负载均衡方案 二、RabbitMQ 高可用集群搭建 1、RabbitMQ 集群搭建 2、配置镜像队列 3、HAProxy 环境搭建 4、Keepalived 环境搭建 3-1、RabbitMQ 集群简介 单台 RabbitMQ 服务器处理消息的能力是有瓶颈的,而且可靠性还无法保证,所

    2024年02月15日
    浏览(19)
  • 第六章 rabbitmq高可用集群

             在服务之间会采用mq进行消息通信,而rabbitmq本身也如同consul一样,如果只有一个节点那么就可能出现宕机的问题,并且基于mq的特点我们是可以在多个服务之间使用同一个mq来相互通信,因此高可用的架构设计就必不可少 1、rabbitmq集群方案 主备 远程 镜像 多活

    2024年02月12日
    浏览(20)
  • rabbitmq第四课-RabbitMQ高可用集群架构详解以及生产环境最佳实践

    之前通过单机环境搭建起来的RabbitMQ服务有一个致命的问题,那就是服务不稳定的问题。如果只是单机RabbitMQ的服务崩溃了,那还好,大不了重启下服务就是了。 但是如果是服务器的磁盘出问题了,那问题就大了。因为消息都是存储在Queue里的,Queue坏了,意味着消息就丢失了

    2024年02月11日
    浏览(25)
  • keepalived+haproxy 搭建高可用高负载高性能rabbitmq集群

    一、环境准备 1. 我这里准备了三台centos7 虚拟机 主机名 主机地址 软件 node-01 192.168.157.133 rabbitmq、erlang、haproxy、keepalived node-02 192.168.157.134 rabbitmq、erlang、haproxy、keepalived node-03 192.168.157.135 rabbitmq、erlang 2. 关闭三台机器的防火墙 3. 三台主机的host和hostname配置 4. erlang与rabbitmq版

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包