面试题答案
一键面试1. 安装RabbitMQ
在两台Linux机器(假设为node1和node2)上都安装RabbitMQ,可通过包管理器(如yum或apt - get)安装:
# CentOS/RHEL系统
sudo yum install rabbitmq-server
# Ubuntu系统
sudo apt - get install rabbitmq-server
2. 配置主机名和hosts文件
在两台机器上分别配置主机名,例如在node1上:
sudo hostnamectl set - hostname node1
在node2上:
sudo hostnamectl set - hostname node2
在两台机器的/etc/hosts
文件中添加对方的主机名和IP映射,例如:
192.168.1.10 node1
192.168.1.11 node2
3. 启动RabbitMQ并加入集群
- 在node1上(作为主节点): 启动RabbitMQ:
sudo systemctl start rabbitmq - server
设置第一个节点为磁盘节点(默认):
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl start_app
- 在node2上: 启动RabbitMQ:
sudo systemctl start rabbitmq - server
停止应用:
sudo rabbitmqctl stop_app
重置节点:
sudo rabbitmqctl reset
加入node1所在的集群,假设node1的主机名为node1:
sudo rabbitmqctl join_cluster rabbit@node1
启动应用:
sudo rabbitmqctl start_app
4. 节点间通信
- 通信协议:RabbitMQ节点间使用Erlang的分布式通信机制进行通信。默认情况下,RabbitMQ使用4369端口进行epmd(Erlang Port Mapper Daemon)通信,用于节点发现和连接建立;使用25672端口进行Erlang节点间的实际数据通信。
5. 关键配置文件参数
RabbitMQ的主要配置文件为/etc/rabbitmq/rabbitmq.conf
(不同版本路径可能略有不同)。
- cluster_formation: 用于配置集群形成的相关参数,例如:
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@node1
cluster_formation.classic_config.nodes.2 = rabbit@node2
- disk_free_limit: 设置磁盘空间限制,当可用磁盘空间低于此限制时,RabbitMQ会采取相应措施(如限制消息接收),例如:
disk_free_limit.absolute = 50MB
- listeners.tcp.default: 设置RabbitMQ监听的TCP端口,默认为5672:
listeners.tcp.default = 5672