在win下cmd(Windows向centos7(lunix)发送文件):
- sftp 用户名@ip;
- cd 和 pwd 是centos7操作打开文件
- lcd,lpwd是windows操作打开文件
- 通过 put 文件名地址 centos7下文件夹名(put后加上-r发送整个文件夹)
Centos7:**给用户或用户组分配文件夹权限:**
将
/opt
目录的所有者更改为
username:
sudo chown username /opt
将
/opt
目录的所有者更改为
username
,所属组更改为
groupname:
sudo chown username:groupname /opt
erlang和rabbitmq****安装步骤:
rabbitmq 需要 erlang 环境 :
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
rabbitmq 需要的依赖包
yum install socat -y
**# 安装 rabbitmq **
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
查看安装路径:rpm -ql rabbitmq-server
查看安装状态:rpm -qa | grep rabbitmq
- 配置和启动命令
添加开机启动 RabbitMQ 服务
chkconfig rabbitmq-server on
启动服务 sudo systemctl start rabbitmq-server
查看服务状态 sudo systemctl status rabbitmq-server
开启 web 管理插件:rabbitmq-plugins enable rabbitmq_management
*6.添加主机名和本地ip*的映射原因:
解析主机名:RabbitMQ 在启动时会使用主机名来标识节点。
一致性: 在集群环境中,所有节点上的主机名和 IP 映射必须一致,
以确保节点之间的通信不会出问题。
- 集群通信: 在多节点集群中,节点之间需要通过主机名进行通信。
**7.配置防火墙, 开放 15672 端口(web 管控台访问端口), **否则外网无法访问
- 防火墙开启端口访问
firewall-cmd --zone=public --add-port=15672/tcp --permanent
- 开启后需要重启防火墙才生效
firewall-cmd –-reload
- 执行
firewall-cmd --list-ports 查看端口
查看端口号:ss -tnlp
**8. 配置 RabbitMQ, 让 guest **用户可以远程登录
- 在/etc/rabbitmq 目录下创建 rabbitmq.config
在rabbitmq.config 中填写 [{rabbit,[{loopback_users,[]}]}].
重启MQ 生效。
9.开启MQTT****协议: rabbitmq-plugins enable rabbitmq_mqtt
**10.**后台启动节点:rabbitmq-server -detached
**11.**设置新的主机名:sudo hostnamectl set-hostname new_hostname
*12.设置虚拟机的固定IP*
进入centos7命令行界面,修改如下内容:
#cd /etc/sysconfig/network-scripts/
#sudo vi ifcfg-en33
修改:BOOTPROTO="static",更改BOOTPROTO为static;
添加:DNS1=114.114.114.114 #这个是国内的DNS地址,是固定的;
IPADDR=192.168.20.133 #你想要设置的固定IP;
NETMASK=255.255.255.0 #子网掩码,不需要修改;
GATEWAY=192.168.20.2,网关
多机单节点集群搭建:
- 配置端口和主机名映射并将主机1 克隆成主机2和3
2、将erlang.cookie 文件中 cookie 值 将node1中的 .erlang.cookie 同步到 rabbitmq@node2中
scp /var/lib/rabbitmq/.erlang.cookie rabbit@node2:/var/lib/rabbitmq/.erlang.cookie
3、Rabbitmq 集群添加节点
#重启 node2机器中 rabbitmq 的服务 在 node2执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster ‐‐ram rabbit@node1
rabbitmqctl start_app
(rabbitmq‐plugins enable rabbitmq_management
systemctl restart rabbitmq‐server.service)
4、查看集群信息 rabbitmqctl cluster_status
单机多节点
*1.查看当前RabbitMQ*服务,看到是在运行中,先暂停该服务。
ps aux|grep rabbitmq 或者systemctl status rabbitmq-server 查看服务状态,确保是能运行起来的 running中
systemctl status rabbitmq-server
停止服务
systemctl stop rabbitmq-server
*2.# 启动第一个节点rabbit-1*
sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &
启动第二个节点rabbit-2
注意:web管理插件端口占用,所以还要指定其web插件占用的端口号
RABBITMQ_SERVER_START_ARGS=”-rabbitmq_management listener [{port,15673}]”
sudo RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit31 rabbitmq-server start &
验证启动
ps aux|grep rabbitmq
**3.#**绑定集群
rabbit-1操作作为主节点
#停止应用
sudo rabbitmqctl -n rabbit-1 stop_app
#目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
sudo rabbitmqctl -n rabbit-1 reset
#启动应用
sudo rabbitmqctl -n rabbit-1 start_app
rabbit2操作为从节点
停止应用
sudo rabbitmqctl -n rabbit-2 stop_app
目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
sudo rabbitmqctl -n rabbit-2 reset
将rabbit2节点加入到rabbit1(主节点)集群当中【Server-node服务器的主机名】
sudo rabbitmqctl -n rabbit-2 join_cluster rabbit-1@'songdanminserver'
启动应用
sudo rabbitmqctl -n rabbit-2 start_app
验证集群状态
sudo rabbitmqctl cluster_status -n rabbit-1
//集群有两个节点:rabbit-1@服务器主机名、rabbit-2@服务器主机名
4.Web****监控、设置账号密码
节点1设置用户、密码,管理权限,对虚拟机/的配置、写入读取权限
rabbitmqctl -n rabbit-1 add_user admin admin
rabbitmqctl -n rabbit-1 set_user_tags admin administrator
rabbitmqctl -n rabbit-1 set_permissions -p / admin "." "." ".*"
节点1设置用户、密码,管理权限,对虚拟机/的配置、写入读取权限
rabbitmqctl -n rabbit-2 add_user admin admin
rabbitmqctl -n rabbit-2 set_user_tags admin administrator
rabbitmqctl -n rabbit-2 set_permissions -p / admin "." "." ".*"
RabbitMQ 路由规则:
在 RabbitMQ 中,路由键(Routing Key)和绑定键(Binding Key)是两个关键的概念,它们共同决定了消息如何从生产者发送到正确的队列。理解它们之间的关系对于正确配置和使用 Topic 交换机尤为重要。
路由键(Routing Key)
定义:路由键是生产者在发送消息时指定的一个字符串,用于告诉交换机如何处理这条消息。
格式:通常是一个点分隔的字符串,例如 stock.usd.nyse。
作用:路由键用于匹配绑定键,从而决定消息应该被发送到哪些队列。
绑定键(Binding Key)
定义:绑定键是队列在绑定到交换机时指定的一个字符串,用于定义队列接收消息的条件。
格式:通常也是一个点分隔的字符串,可以包含通配符 * 和 #。
*:匹配一个单词。
#:匹配零个或多个单词。
作用:绑定键用于匹配路由键,从而决定哪些消息会被路由到该队列。
示例
假设我们有以下路由键和绑定键:
路由键:
stock.usd.nyse
stock.gbp.london
news.europe.politics
news.usa.economy
绑定键:
stock..:匹配所有股票相关的消息,无论货币和交易所。
stock.#:匹配所有股票相关的消息,无论货币和交易所。
news..politics:匹配所有政治相关的新闻,无论地区。
news..*:匹配所有新闻,无论地区和类别。
版权归原作者 a_12321321 所有, 如有侵权,请联系我们删除。