RabbmitMQ 集群安装

简介: RabbmitMQ 集群安装

单节点安装


[root@MiWiFi-R3L-srv ~]# cd /home/ninesun/Documents/
[root@MiWiFi-R3L-srv Documents]# ll
total 26340
-rwxrw-rw-. 1 ninesun ninesun 18345424 Mar  5  2020 erlang-18.3-1.el7.centos.x86_64.rpm
-rwxrw-rw-. 1 ninesun ninesun  1563272 Mar  5  2020 haproxy-1.6.5.tar.gz
-rwxrw-rw-. 1 ninesun ninesun   330361 Mar  5  2020 keepalived-1.2.18.tar.gz
-rwxrw-rw-. 1 ninesun ninesun    32019 Mar  5  2020 rabbitmq_delayed_message_exchange-0.0.1.ez
-rwxrw-rw-. 1 ninesun ninesun  5520417 Mar  5  2020 rabbitmq-server-3.6.5-1.noarch.rpm
-rwxrw-rw-. 1 ninesun ninesun   808698 Mar  5  2020 RabbitMQ消息服务用户手册.docx
-rwxrw-rw-. 1 ninesun ninesun   361448 Mar  5  2020 socat-1.7.3.2-1.1.el7.x86_64.rpm
[root@MiWiFi-R3L-srv Documents]# rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:erlang-18.3-1.el7.centos         ################################# [100%]
[root@MiWiFi-R3L-srv Documents]# rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm 
warning: rabbitmq-server-3.6.5-1.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
  socat is needed by rabbitmq-server-3.6.5-1.noarch
[root@MiWiFi-R3L-srv Documents]# rpm -ivh socat-1.7.3.2-1.1.el7.x86_64.rpm 
warning: socat-1.7.3.2-1.1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 87e360b8: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:socat-1.7.3.2-1.1.el7            ################################# [100%]
[root@MiWiFi-R3L-srv Documents]# rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm 
warning: rabbitmq-server-3.6.5-1.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:rabbitmq-server-3.6.5-1          ################################# [100%]
[root@MiWiFi-R3L-srv Documents]# pwd
/home/ninesun/Documents
[root@MiWiFi-R3L-srv ebin]# rabbitmq-server start &
[2] 4115
[root@MiWiFi-R3L-srv ebin]# ERROR: node with name "rabbit" already running on "MiWiFi-R3L-srv"
^C
[2]+  Exit 1                  rabbitmq-server start
[root@MiWiFi-R3L-srv ebin]# ps -ef|grep rabbit
root       3873   3247  0 08:52 pts/1    00:00:00 /bin/sh /sbin/rabbitmq-server start
root       3883   3873  0 08:52 pts/1    00:00:00 su rabbitmq -s /bin/sh -c /usr/lib/rabbitmq/bin/rabbitmq-server  'start'
rabbitmq   3884   3883  0 08:52 ?        00:00:00 /bin/sh -e /usr/lib/rabbitmq/bin/rabbitmq-server start
rabbitmq   3957      1  0 08:52 ?        00:00:00 /usr/lib64/erlang/erts-7.3/bin/epmd -daemon
rabbitmq   3972   3884  1 08:52 ?        00:00:02 /usr/lib64/erlang/erts-7.3/bin/beam -W w -A 64 -P 1048576 -t 5000000 -stbt db -K true -B i -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin -noshell -noinput -s rabbit boot -sname rabbit@MiWiFi-R3L-srv -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@MiWiFi-R3L-srv.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@MiWiFi-R3L-srv-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@MiWiFi-R3L-srv-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@MiWiFi-R3L-srv" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672 start
rabbitmq   4066   3972  0 08:52 ?        00:00:00 inet_gethost 4
rabbitmq   4067   4066  0 08:53 ?        00:00:00 inet_gethost 4
root       4234   3247  0 08:55 pts/1    00:00:00 grep --color=auto rabbit
[root@MiWiFi-R3L-srv ebin]# 
[root@MiWiFi-R3L-srv ebin]# 
[root@MiWiFi-R3L-srv ebin]# 
[root@MiWiFi-R3L-srv ebin]# lsof -i:5672
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
beam    3972 rabbitmq   48u  IPv6  60895      0t0  TCP *:amqp (LISTEN)
[root@MiWiFi-R3L-srv ebin]# q

rabbmit 的插件,dashboard就属于插件之一

[root@MiWiFi-R3L-srv ebin]# rabbitmq-plugins list
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status:   * = running on rabbit@MiWiFi-R3L-srv
 |/
[  ] amqp_client                       3.6.5
[  ] cowboy                            1.0.3
[  ] cowlib                            1.0.1
[  ] mochiweb                          2.13.1
[  ] rabbitmq_amqp1_0                  3.6.5
[  ] rabbitmq_auth_backend_ldap        3.6.5
[  ] rabbitmq_auth_mechanism_ssl       3.6.5
[  ] rabbitmq_consistent_hash_exchange 3.6.5
[  ] rabbitmq_event_exchange           3.6.5
[  ] rabbitmq_federation               3.6.5
[  ] rabbitmq_federation_management    3.6.5
[  ] rabbitmq_jms_topic_exchange       3.6.5
[  ] rabbitmq_management               3.6.5
[  ] rabbitmq_management_agent         3.6.5
[  ] rabbitmq_management_visualiser    3.6.5
[  ] rabbitmq_mqtt                     3.6.5
[  ] rabbitmq_recent_history_exchange  1.2.1
[  ] rabbitmq_sharding                 0.1.0
[  ] rabbitmq_shovel                   3.6.5
[  ] rabbitmq_shovel_management        3.6.5
[  ] rabbitmq_stomp                    3.6.5
[  ] rabbitmq_top                      3.6.5
[  ] rabbitmq_tracing                  3.6.5
[  ] rabbitmq_trust_store              3.6.5
[  ] rabbitmq_web_dispatch             3.6.5
[  ] rabbitmq_web_stomp                3.6.5
[  ] rabbitmq_web_stomp_examples       3.6.5
[  ] sockjs                            0.3.4
[  ] webmachine                        1.10.3
[root@MiWiFi-R3L-srv ebin]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management
Applying plugin configuration to rabbit@MiWiFi-R3L-srv... started 6 plugins.

集群安装


haproxy

 

参数优化


 

创建如下配置文件位于:/etc/rabbitmq目录下(这个目录需要自己创建)
环境变量配置文件:rabbitmq-env.conf 
配置信息配置文件:rabbitmq.config(可以不创建和配置,修改)
rabbitmq-env.conf配置文件:
---------------------------------------关键参数配置-------------------------------------------
RABBITMQ_NODE_IP_ADDRESS=本机IP地址
RABBITMQ_NODE_PORT=5672
RABBITMQ_LOG_BASE=/var/lib/rabbitmq/log
RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq/mnesia
配置参考参数如下:
RABBITMQ_NODENAME=FZTEC-240088 节点名称
RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 监听IP
RABBITMQ_NODE_PORT=5672 监听端口
RABBITMQ_LOG_BASE=/data/rabbitmq/log 日志目录
RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins 插件目录
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia 后端存储目录
更详细的配置参见: http://www.rabbitmq.com/configure.html#configuration-file
配置文件信息修改:
/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.4/ebin/rabbit.app和rabbitmq.config配置文件配置任意一个即可,我们进行配置如下:
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.4/ebin/rabbit.app
-------------------------------------关键参数配置----------------------------------------
tcp_listerners 设置rabbimq的监听端口,默认为[5672]。
disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
vm_memory_high_watermark,设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。
hipe_compile 将部分rabbimq代码用High Performance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
force_fine_statistics, 该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能

集群恢复与故障转移


offline master节点down 无法启动时,推选新的master

极端情况:

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
6月前
|
消息中间件 Java Apache
消息队列 MQ使用问题之如何在内外网环境下使用单组节点单副本模式
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
6月前
分布式篇问题之集群(Cluster)模式主控节点的高可用性问题如何解决
分布式篇问题之集群(Cluster)模式主控节点的高可用性问题如何解决
|
算法 Linux
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
95 0
|
负载均衡 算法 Java
分布式系列教程(10) -分布式协调工具Zookeeper(负载均衡原理实现)
分布式系列教程(10) -分布式协调工具Zookeeper(负载均衡原理实现)
136 0
|
8月前
|
Java 网络安全 Apache
搭建Zookeeper集群:三台服务器,一场分布式之舞
搭建Zookeeper集群:三台服务器,一场分布式之舞
932 0
|
8月前
|
算法 Java Linux
zookeeper单机伪集群集群部署
zookeeper单机伪集群集群部署
150 0
|
存储 人工智能
分布式与集群(一):我眼中的分布式与集群
我们国家的优势:我们相比其他国家拥有天然的人口优势;人多了,需求便来,如何做到服务好这么多人,面临很大的挑战,同时也蕴藏着巨大的机会;当然也催生了以BAT为代表的一批互联网公司的诞生,我们的技术也进入世界一流水平;
174 10
|
消息中间件 网络协议 数据中心
RabbmitMQ学习笔记-RabbitMQ集群架构模式
RabbmitMQ学习笔记-RabbitMQ集群架构模式
100 0
|
Kubernetes Ubuntu 应用服务中间件
k8s学习四-部署节点加入集群
k8s学习四-部署节点加入集群
311 0
k8s学习四-部署节点加入集群
|
存储 负载均衡 算法
【集群】集群的概念(相关知识)、常用工具/算法、常见集群
文章目录 前言 一、集群架构 1.1 负载调度器 1.1.1 常用调度算法
291 0
【集群】集群的概念(相关知识)、常用工具/算法、常见集群