搭建 RabbitMQ Server 高可用集群

【rabbitmq-server】安装使用介绍 在 1050a 系统下安装 rabbitmq-server 服务以及基本配置;【注】:改方案用于A版统信服务器操作系统 阅读详情

搭建 RabbitMQ Server 高可用集群

阅读目录:

  • 准备工作
  • 搭建 RabbitMQ Server 单机版
  • RabbitMQ Server 高可用集群相关概念
  • 搭建 RabbitMQ Server 高可用集群
  • 搭建 HAProxy 负载均衡

因为公司测试服务器暂不能用,只能在自己电脑上重新搭建一下 RabbitMQ Server 高可用集群,正好把这个过程记录下来,以便日后查看。

公司测试服务器上的 RabbitMQ 集群,我搭建的是三台服务器,因为自己电脑空间有限,这边只能搭建两台服务器用作高可用集群,用的是 Vagrant 虚拟机管理工具。

环境介绍:

RabbitMQ节点IP 地址工作模式
node1192.168.1.50DISKCentOS 7.0 - 64位
node2192.168.1.51DISKCentOS 7.0 - 64位

整体架构:

1. 准备工作

首先,在node1服务器上,修改vi /etc/hostname:

node1

在node2服务器上,修改vi /etc/hostname:

node2

然后在node1服务器上,修改vi /etc/hosts:

node1 192.168.1.50
node2 192.168.1.51
127.0.0.1   node1
::1         node1

在node2服务器上,修改vi /etc/hosts:

192.168.1.50 node1
192.168.1.51 node2
127.0.0.1   node2
::1         node2

然后查看下hostnamectl status,如果不正确的话,需要再进行设置下:

[root@node1 ~]# hostnamectl status
   Static hostname: node1
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 241163503ce842c489360d0a48a606fc
           Boot ID: cdb59c025cb447e3afed7317af78979e
    Virtualization: oracle
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-229.el7.x86_64
      Architecture: x86_64
[root@node1 ~]# hostnamectl --static set-hostname node1

为了后面我们安装的顺利,我们最好再配置一下代理:

[root@node1 ~]# export http_proxy=http://192.168.1.44:1087;export https_proxy=http://192.168.1.44:1087;
[root@node1 ~]# curl ip.cn
当前 IP:104.245.13.31 来自:美国 Linost

2. 搭建 RabbitMQ Server 单机版

下面以node1服务器做演示示例。

首先,更新软件包和存储库:

[root@node1 ~]# yum -y update

然后安装 Erlang(RabbitMQ 运行需要 Erlang 环境):

[root@node1 ~]# vi /etc/yum.repos.d/rabbitmq-erlang.repo
[root@node1 ~]# [rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

[root@node1 ~]# yum -y install erlang socat

然后安装 RabbitMQ Server:

[root@node1 ~]# mkdir -p ~/download && cd ~/download
[root@node1 download]# wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
[root@node1 download]# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
[root@node1 download]# rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm

卸载 RabbitMQ 命令:

[root@node1 ~]# rpm -e rabbitmq-server-3.6.10-1.el7.noarch

安装好之后,就可以启动 RabbitMQ Server 了:

[root@node1 download]# systemctl start rabbitmq-server

也可以添加到系统服务中启动:

[root@node1 download]# systemctl enable rabbitmq-server
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

启动成功之后,我们可以查看下 RabbitMQ Server 的状态:

[root@node1 download]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled)
   Active: active (running) since 五 2018-04-27 04:44:31 CEST; 3min 27s ago
  Process: 17216 ExecStop=/usr/sbin/rabbitmqctl stop (code=exited, status=0/SUCCESS)
 Main PID: 17368 (beam.smp)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ├─17368 /usr/lib64/erlang/erts-9.3/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K true -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr...
           ├─17521 /usr/lib64/erlang/erts-9.3/bin/epmd -daemon
           ├─17655 erl_child_setup 1024
           ├─17675 inet_gethost 4
           └─17676 inet_gethost 4

4月 27 04:44:30 node1 rabbitmq-server[17368]: RabbitMQ 3.6.10. Copyright (C) 2007-2017 Pivotal Software, Inc.
4月 27 04:44:30 node1 rabbitmq-server[17368]: ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
4月 27 04:44:30 node1 rabbitmq-server[17368]: ##  ##
4月 27 04:44:30 node1 rabbitmq-server[17368]: ##########  Logs: /var/log/rabbitmq/rabbit@node1.log
4月 27 04:44:30 node1 rabbitmq-server[17368]: ######  ##        /var/log/rabbitmq/rabbit@node1-sasl.log
4月 27 04:44:30 node1 rabbitmq-server[17368]: ##########
4月 27 04:44:30 node1 rabbitmq-server[17368]: Starting broker...
4月 27 04:44:31 node1 rabbitmq-server[17368]: systemd unit for activation check: "rabbitmq-server.service"
4月 27 04:44:31 node1 systemd[1]: Started RabbitMQ broker.
4月 27 04:44:31 node1 rabbitmq-server[17368]: completed with 0 plugins.
[root@node1 download]# systemctl enable rabbitmq-server
ln -s '/usr/lib/systemd/system/rabbitmq-server.service' '/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service'

然后启动 RabbitMQ Web 管理控制台:

[root@node1 download]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@node1... started 6 plugins.

RabbitMQ Server 默认guest用户,只能localhost地址访问,我们还需要创建管理用户:

[root@node1 download]# rabbitmqctl add_user admin admin123 && 
rabbitmqctl set_user_tags admin administrator && 
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

然后添加防火墙运行访问的端口:

[root@node1 download]# firewall-cmd --zone=public --permanent --add-port=4369/tcp && 
firewall-cmd --zone=public --permanent --add-port=25672/tcp && 
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp && 
firewall-cmd --zone=public --permanent --add-port=15672/tcp && 
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp && 
firewall-cmd --zone=public --permanent --add-port=1883/tcp && 
firewall-cmd --zone=public --permanent --add-port=8883/tcp
success

重新启动防火墙:

[root@node1 download]# firewall-cmd --reload
success

上面这些做完了,RabbitMQ 单机版的部署也完成了,我们可以浏览器访问``:

将上面的搭建过程,在node2服务器上,再做重复一边。

3. RabbitMQ Server 高可用集群相关概念

设计集群的目的

  • 允许消费者和生产者在 RabbitMQ 节点崩溃的情况下继续运行。
  • 通过增加更多的节点来扩展消息通信的吞吐量。

集群配置方式

  • cluster:不支持跨网段,用于同一个网段内的局域网;可以随意的动态增加或者减少;节点之间需要运行相同版本的 RabbitMQ 和 Erlang。
  • federation:应用于广域网,允许单台服务器上的交换机或队列接收发布到另一台服务器上交换机或队列的消息,可以是单独机器或集群。federation 队列类似于单向点对点连接,消息会在联盟队列之间转发任意次,直到被消费者接受。通常使用 federation 来连接 internet 上的中间服务器,用作订阅分发消息或工作队列。
  • shovel:连接方式与 federation 的连接方式类似,但它工作在更低层次。可以应用于广域网。

节点类型

  • RAM node:内存节点将所有的队列、交换机、绑定、用户、权限和 vhost 的元数据定义存储在内存中,好处是可以使得像交换机和队列声明等操作更加的快速。
  • Disk node:将元数据存储在磁盘中,单节点系统只允许磁盘类型的节点,防止重启 RabbitMQ 的时候,丢失系统的配置信息。

问题说明:RabbitMQ 要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点,当节点加入或者离开集群时,必须要将该变更通知到至少一个磁盘节点。如果集群中唯一的一个磁盘节点崩溃的话,集群仍然可以保持运行,但是无法进行其他操作(增删改查),直到节点恢复。
解决方案:设置两个磁盘节点,至少有一个是可用的,可以保存元数据的更改。

Erlang Cookie

Erlang Cookie 是保证不同节点可以相互通信的密钥,要保证集群中的不同节点相互通信必须共享相同的 Erlang Cookie。具体的目录存放在/var/lib/rabbitmq/.erlang.cookie。

说明:这就要从 rabbitmqctl 命令的工作原理说起,RabbitMQ 底层是通过 Erlang 架构来实现的,所以 rabbitmqctl 会启动 Erlang 节点,并基于 Erlang 节点来使用 Erlang 系统连接 RabbitMQ 节点,在连接过程中需要正确的 Erlang Cookie 和节点名称,Erlang 节点通过交换 Erlang Cookie 以获得认证。

镜像队列

RabbitMQ 的 Cluster 集群模式一般分为两种,普通模式和镜像模式。

  • 普通模式:默认的集群模式,以两个节点(rabbit01、rabbit02)为例来进行说明。对于 Queue 来说,消息实体只存在于其中一个节点 rabbit01(或者 rabbit02),rabbit01 和 rabbit02 两个节点仅有相同的元数据,即队列的结构。当消息进入 rabbit01 节点的 Queue 后,consumer 从 rabbit02 节点消费时,RabbitMQ 会临时在 rabbit01、rabbit02 间进行消息传输,把 A 中的消息实体取出并经过 B 发送给 consumer。所以 consumer 应尽量连接每一个节点,从中取消息。即对于同一个逻辑队列,要在多个节点建立物理 Queue。否则无论 consumer 连 rabbit01 或 rabbit02,出口总在 rabbit01,会产生瓶颈。当 rabbit01 节点故障后,rabbit02 节点无法取到 rabbit01 节点中还未消费的消息实体。如果做了消息持久化,那么得等 rabbit01 节点恢复,然后才可被消费;如果没有持久化的话,就会产生消息丢失的现象。
  • 镜像模式:将需要消费的队列变为镜像队列,存在于多个节点,这样就可以实现 RabbitMQ 的 HA 高可用性。作用就是消息实体会主动在镜像节点之间实现同步,而不是像普通模式那样,在 consumer 消费数据时临时读取。缺点就是,集群内部的同步通讯会占用大量的网络带宽。

镜像队列实现了 RabbitMQ 的高可用性(HA),具体的实现策略如下所示:

ha-modeha-params功能
all空镜像队列将会在整个集群中复制。当一个新的节点加入后,也会在这 个节点上复制一份。
exactlycount镜像队列将会在集群上复制 count 份。如果集群数量少于 count 时候,队列会复制到所有节点上。如果大于 Count 集群,有一个节点 crash 后,新进入节点也不会做新的镜像。
nodesnode name镜像队列会在 node name 中复制。如果这个名称不是集群中的一个,这不会触发错误。如果在这个 node list 中没有一个节点在线,那么这个 queue 会被声明在 client 连接的节点。

实例列举:

queue_args("x-ha-policy":"all") //定义字典来设置额外的队列声明参数
channel.queue_declare(queue="hello-queue",argument=queue_args)

如果需要设定特定的节点(以rabbit@localhost为例),再添加一个参数:

queue_args("x-ha-policy":"nodes",
           "x-ha-policy-params":["rabbit@localhost"])
channel.queue_declare(queue="hello-queue",argument=queue_args)

可以通过命令行查看那个主节点进行了同步:

$ rabbitmqctl list_queue name slave_pids synchronised_slave_pids

以上内容主要参考:RabbitMQ 分布式集群架构

4. 搭建 RabbitMQ Server 高可用集群

理解了上面的概念之后,我们再搭建 RabbitMQ Server 高可用集群,就非常容易了。

默认.erlang.cookie文件是隐藏的,ls命令并不能查看,你也可以手动搜索下文件:

[root@node1 ~]# find / -name ".erlang.cookie"
/var/lib/rabbitmq/.erlang.cookie
[root@node1 ~]# cat /var/lib/rabbitmq/.erlang.cookie
LBOTELUJAMXDMIXNTZMB

将node1服务器中的.erlang.cookie文件,拷贝到node2服务器上:

[root@node1 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq

先停止运行节点,然后以后台方式启动 RabbitMQ Server(node1和node2分别执行):

[root@node1 ~]# rabbitmqctl stop
[root@node1 ~]# rabbitmq-server -detached

然后我们以node1作为集群中心,在node2上执行加入集群中心命令(节点类型为磁盘节点):

[root@node1 ~]# rabbitmqctl stop_app
[root@node1 ~]# rabbitmqctl reset 
[root@node1 ~]# rabbitmqctl join_cluster rabbit@node1
//默认是磁盘节点,如果是内存节点的话,需要加--ram参数
[root@node1 ~]# rabbitmqctl start_app

查看集群的状态(包含node1和node2节点):

[root@node1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node1
[{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},
 {running_nodes,[rabbit@node2,rabbit@node1]},
 {cluster_name,<<"rabbit@node1">>},
 {partitions,[]},
 {alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}]

我们可以从 RabbitMQ Web 管理界面,看到集群的信息:

5. 搭建 HAProxy 负载均衡

HAProxy 是一个免费的负载均衡软件,可以运行于大部分主流的 Linux 操作系统上。

HAProxy 提供了 L4(TCP) 和 L7(HTTP) 两种负载均衡能力,具备丰富的功能。HAProxy 的社区非常活跃,版本更新快速(最新稳定版 1.7.2 于 2017/01/13 推出)。最关键的是,HAProxy 具备媲美商用负载均衡器的性能和稳定性。它当前不仅仅是免费负载均衡软件的首选,更几乎成为了唯一选择。

因为 RabbitMQ 本身不提供负载均衡,下面我们就搭建 HAProxy,用作 RabbitMQ 集群的负载均衡。

HAProxy 安装在node1服务器上,安装命令:

[root@node1 ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm//
[root@node1 ~]# yum -y install haproxy

配置 HAProxy:

[root@node1 ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
[root@node1 ~]# vi /etc/haproxy/haproxy.cfg

将下面的配置添加到/etc/haproxy/haproxy.cfg文件中:

global
    log     127.0.0.1  local0 info
    log     127.0.0.1  local1 notice
    daemon
    maxconn 4096

defaults
    log     global
    mode    tcp
    option  tcplog
    option  dontlognull
    retries 3
    option  abortonclose
    maxconn 4096
    timeout connect  5000ms
    timeout client  3000ms
    timeout server  3000ms
    balance roundrobin

listen private_monitoring
    bind    0.0.0.0:8100
    mode    http
    option  httplog
    stats   refresh  5s
    stats   uri  /stats
    stats   realm   Haproxy
    stats   auth  admin:admin

listen rabbitmq_admin
    bind    0.0.0.0:8102
    server  node1 node1:15672
    server  node2 node2:15672

listen rabbitmq_cluster
    bind    0.0.0.0:8101
    mode    tcp
    option  tcplog
    balance roundrobin
    timeout client  3h
    timeout server  3h
    server  node1  node1:5672  check  inter  5000  rise  2  fall  3
    server  node2  node2:5672  check  inter  5000  rise  2  fall  3

然后启动 HAProxy:

[root@node1 ~]# haproxy -f /etc/haproxy/haproxy.cfg

外部访问的话,需要关闭下防火墙:

[root@node1 ~]# systemctl disable firewalld.service
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
[root@node1 ~]# systemctl stop firewalld.service

HAProxy 配置了三个地址:

  • http://node1:8100/stats:HAProxy 负载均衡信息地址,账号密码:admin/admin。
  • http://node1:8101:RabbitMQ Server Web 管理界面(基于负载均衡)。
  • http://node1:8102:RabbitMQ Server 服务地址(基于负载均衡)。

通过访问http://node1:8100/stats,查看 HAProxy 负载均衡信息:

参考资料:

作者:田园里的蟋蟀 
微信公众号: 你好架构 
出处: http://www.cnblogs.com/xishuai/ 
公众号会不定时的分享有关架构的方方面面,包含并不局限于:Microservices(微服务)、Service Mesh(服务网格)、DDD/TDD、Spring Cloud、Dubbo、Service Fabric、Linkerd、Envoy、Istio、Conduit、Kubernetes、Docker、MacOS/Linux、Java、.NET Core/ASP.NET Core、Redis、RabbitMQ、MongoDB、GitLab、CI/CD(持续集成/持续部署)、DevOps等等。 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

RabbitMQ集群搭建与测试 由于项目工作的要求,需要用到RabbitMQ的集群相关的功能,所以就花时间去了解,测试了一下,暂时只是完成了第一步集群的搭建使用,以及集群的负载均衡管理,中间也绕过一些弯路,幸好这个东西玩过的人还是比较多了,而且它的社区也比较成熟了,所以可参考的资料还是挺丰富的,这个尝试完成之后,也想着把自己的一些尝试的过程记录一些,既是回顾其中的一些细节,也是给他人提供一个参考(若觉得靠谱的话,欢迎讨论)。 阅读详情

相关推荐

RabbitMQ使用说明

本文基于作者对RabbitMQ使用的经验积累进行阶段性总结,并希望没有使用经验的开发人员,看完本文可以直接上手。包括RabbitMQ核心概念,SpringCloud stream 整合RabbitMQ,使用场景及问题,RabbitMQ监控

ruanxinyan12345的博客 1047

RabbitMQ Server简介和安装教程

什么是AMQP? AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 什么是RabbitMQ? RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、R...

Keep learing, and stay fast 1万+

RabbitMQ Server的简介和安装教程

RabbitMQ是一个高度可靠、灵活的开源消息代理软件,用于在分布式系统中传递消息。首先,建立与RabbitMQ服务器的连接,并创建一个名为"hello"的队列。它采用了基于消息队列的异步通信模式,允许发送者(生产者)将消息发送到一个中间代理(代理服务器),然后由接收者(消费者)从代理服务器中接收消息。通过RabbitMQ,您可以轻松地实现消息队列模式,提高系统的可靠性和灵活性。安装完成后,启动RabbitMQ Server。RabbitMQ提供了一个Web管理界面,用于监控和管理RabbitMQ服务器。

EvktJava的博客 1094

rabbitmq server

服务启动与停止 service rabbitmq-server start #启动服务 service rabbitmq-server stop #停止服务 service rabbitmq-server status #查看状态 开通STOMP通道 rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq-plugins enable rabbitmq_web_stomp_examples #重启 service rabbitmq-se...

帅的没拼音 3020

【NCBI】SRA toolkit安装及使用-Windows&Linux版本

由于市面上的文章介绍SRA toolkit基本上都是基于Linux,而在windows下运行SRA toolkit基本上可以达到相同的效果且更为方便,故本文将分别阐明在Windows和Linux环境下SRA toolkit的安装及使用。

weixin_48076899的博客 2万+

2017阿里内推笔试题--算法工程师(运筹优化)

2017阿里内推笔试题–算法工程师(运筹优化)题目沐哲是一个菜鸟仓库的一个拣货员,但他有非常个怪异的习惯。每次拣货的重量都要比之前拣的一个轻,每次拣到货后都可以得到1块钱,沐哲想知道这样最多能赚多少钱 32 34 7 33 21 2 13 12 3 11 26 36 16 30 22 1 24 14 20 23 25 5 19 29 27 15 9 17 31 4 6 18 8 10 3

shawpan的专栏 1万+

搭建RabbitMQ Server高可用集群

10分钟搭建rabbitmq高可用集群

qq_51552268的博客 507

基于STM32-XPC仿真平台的构架

基于STM32-XPC仿真平台的构架 xPC Target是MathWorks公司的MATLAB提供的一个基于RTW(Real-Time Workshop)体系框架的附加产品,是一种用于产品原型开发、测试和配置实时系统的PC机解决途径。xPC目标实时仿真系统能够使开发者在产品开发前进行产品原型的快速实现、测试和评估,是 Simulink 工具集下用于产品原型开发设计测试集于一体的工具箱。

sujianbonwpu的博客 4490

【转载】搭建 RabbitMQ Server 高可用集群

阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 因为公司测试服务器暂不能用,只能在自己电脑上重新搭建一下 RabbitMQ Server 高可用集群,正好把这个过程记录下来,以便日后查看。 公司测试服务器上的 RabbitMQ 集群,...

weixin_38407894的博客 206

给宇树Go2机器人装‘眼睛’:在Jetson Orin Nano上从零部署YOLOv5的保姆级避坑实录

本文详细介绍了在Jetson Orin Nano上为宇树Go2机器人部署YOLOv5视觉系统的完整流程,涵盖硬件选型、环境配置、模型优化及系统集成等关键步骤。针对机器人应用场景特有的离线部署、版本冲突和实时推理等挑战,提供了实用的解决方案和性能优化技巧,帮助开发者快速实现机器人的视觉能力升级。

weixin_29169505的博客 381

【LE Audio】CAP精讲[1]: 从理论到实操,CAP 协同流程入门全攻略

LEAudio生态中的CommonAudioProfile(CAP)是一个关键协同框架,它通过整合基础音频协议(BAP/VCP/MICP等)构建多设备协同能力。CAP定义了三大核心功能:音频流管理、设备组控制和统一交互服务,解决了传统蓝牙音频在多设备场景下的协同痛点。其规范历经v1.0到v1.0.1的优化,修正了角色定义、连接流程等关键模块,提升设备兼容性。CAP采用严格的语言约定(shall/must/should)和术语体系(ContextType/CCID/协同集),确保不同厂商设备能相互理解。

byte轻骑兵的技术小窝 2万+

搭建 RabbitMQ Server 高可用集群【转】

阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 因为公司测试服务器暂不能用,只能在自己电脑上重新搭建一下 RabbitMQ Server 高可用集群,正好把这个过程记录下来,以便日后查看。 公司测试服务器上...

dianfu2892的博客 115

YOLOv8【第九章:模型部署篇·第2节】一文搞懂,模型剪枝与压缩技术!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1529

简述:搭建 RabbitMQ Server 高可用集群

我的环境: centos6 两台机器 下载rpm包安装 772 rpm -ivh erlang-22.1.8-1.el6.x86_64.rpm 775 yum install socat 776 rpm -ivh rabbitmq-server-3.8.1-1.el6.noarch.rpm 安装管理插件 784 rabbitmq-plugins enable ...

草根上的须子 277

SAP 系统间 SSO 的真正价值,从 SM59 到可信 RFC 的安全设计

SAP S/4HANA系统间Single Sign-On(SSO)的核心价值在于集中管理通信身份与信任关系,而非仅减少密码输入。传统固定账号密码方式在系统规模扩大后会面临密码管理、审计追踪等挑战。通过SM59配置可信RFC目标系统,结合SSL证书或SAP Trusted System等强认证机制,能有效降低安全凭据暴露风险。SSO配置需配合授权对象、角色管理等建立清晰的信任边界,实现系统间安全通信的同时保持可审计性。这种方案特别适用于Fiori前端与S/4HANA后端等场景,通过可信RFC传递用户身份,避免

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1065

MTK 平台的 Camera HAL 架构全解析:CamHAL3、PipeMgr 与 AI Node 实战解构

本文系统剖析 MTK(联发科)平台在 Camera HAL 架构上的核心实现机制,聚焦 CamHAL3 框架演进、PipeMgr 管线管理逻辑、AI Node 插件式拓展路径,以及多摄像头支持、3A 控制流程与硬件抽象模型。结合实际调试经验与平台差异对比,全面呈现 MTK 平台在 Camera 系统上的工程实践路径与调优策略,为开发者在适配、移植与性能优化过程中提供具备实操价值的系统性参考。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 2099

rabbitmq-server单机搭建+镜像集群keepalived高可用

安装erlang环境(需要有epel源的前提下) yum -y install erlang 下载rabbitmq的rpm安装包 wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el7.noarch.rpm 导入秘钥 rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc yum..

qq_43076479的博客 398

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RabbitMQ集群搭建与运维

说明:本文在操作系统Red Hat Enterprise Linux Server release 7.2 (Maipo)下进行 一、Rabbit MQ 单机安装 由于公司Linux服务器无法连接互联网,所以本文采取离线安装的方法,即在Windows上下载所需软件,并上传至Linux。 注:下载时使用HK代理。 1. 下载软件 erlang下载 https://github.com/rabbit...

Jake Weng 4191

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

RabbitMQ 集群搭建步驟

RabbitMQ 是一個流行的開源消息中間件,搭建集群可以提高其可用性和吞吐量。

weixin_45603383的博客 801

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CentOS 7搭建RabbitMQ集群

文章目录前言一、基础安装1、资源准备2、mq01安装erlang,安装成功后用erl命令验证3、mq01安装rabbitmq-server4、在mq02、mq03服务器上重复以上操作二、集群搭建1、在3台服务器上配置/etc/hosts文件4、修改mq02、mq03服务器的.erlang.cookie文件,使其值都等于mq01的值5、修改3台服务器的.erlang.cookie文件权限6、依次启动3台服务器的RabbitMQ服务7、在mq01服务器执行以下命令8、在mq02、mq03服务器执行以下命令9、检

心在天涯----测试之路 1383

## Rabbitmq 集群搭建

Rabbitmq 集群搭建 centos7 单机部署rabbitmq erlang socat rabbitmq 安装erlang的编译环境 yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget erlang下载,由于官网下载速度慢所以从rabbitmq推荐的网站下载rpm版进行安装 地址:https://www.erlang-solutions.com/resources/downloa

ZH1313HZ的博客 392

(3)Canal高可用集群

在最近项目开中,为了减少前台搜索对数据库访问压力,入库的物料都需要同步一份数据到ES,让前台搜索直接访问ES,不直接访问数据库获取数据。一开始做法是代码串行先保存到数据库,再同步到ES。但是会有一个坑,如果两者其一保存数据不成功,就会导致数据库跟ES数据不一致,而且这种方式是对站点代码是有侵入式的。搜索相关资料发现阿里的canal这个增量数据订阅&消费的中间件可以无侵入式地有效解决该问题,canal伪造从库拉取mysql库每次修改binary log对象解析后,再通过MQ同步数据到ES。

wzk153的博客 1494
上一篇: 解决 RabbitMQ 集群 Channel shutdown: connection error 错误(HAProxy 负载均衡)
下一篇: RabbitMQ 高可用集群
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值