RabbitMQ 应用场景
![]()
![]()
![]()
消息队列面试题
![]()
认识RabbitMQ
![]()
安装RabbitMQ
#rabbitmq:https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.16-1.el7.noarch.rpm?distro_version_id=140
#erlang: https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11.1.el7.x86_64.rpm/download.rpm?distro_version-id=140
[root@jenkinsagent ~]# mkdir rabbitmq
[root@jenkinsagent ~]# cd rabbitmq/
[root@jenkinsagent rabbitmq]# rpm -ivh rabbitmq-server-3.8.16-1.el7.noarch.rpm
[root@jenkinsagent rabbitmq]# rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
[root@jenkinsagent rabbitmq]# yum install -y socat -y
[root@jenkinsagent rabbitmq]# rpm -ivh rabbitmq-server-3.8.16-1.el7.noarch.rpm
[root@jenkinsagent rabbitmq]# systemctl enable rabbitmq-server.service
[root@jenkinsagent rabbitmq]# systemctl start rabbitmq-server
[root@jenkinsagent rabbitmq]# systemctl status rabbitmq-server
[root@jenkinsagent rabbitmq]# systemctl stop rabbitmq-server
[root@jenkinsagent rabbitmq]# rabbitmq-plugins enable rabbitmq_management
[root@jenkinsagent rabbitmq]# systemctl start rabbitmq-server
[root@jenkinsagent rabbitmq]# systemctl status rabbitmq-server
#默认端口为15672 如果访问不了 看看是否关闭防火墙
http://192.168.40.146:15672/
[root@jenkinsagent rabbitmq]# systemctl stop firewalld
[root@jenkinsagent rabbitmq]# systemctl disable firewalld
添加新用户
[root@jenkinsagent rabbitmq]# rabbitmqctl add_user admin 123456
#administrator 不能大写Administrator 登陆会报错Not management user
[root@jenkinsagent rabbitmq]# rabbitmqctl set_user_tags admin administrator
[root@jenkinsagent rabbitmq]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
[root@jenkinsagent rabbitmq]# rabbitmqctl list_users
Listing users ...
user tags
admin [Administrator]
guest [administrator]
![]()
![]()
RabbitMQ的工作原理
![]()
![]()
RabbitMQ交换机类型
1.Direct
![]()
2.fanout
![]()
3.Topic
![]()
![]()
4.headers
![]()
![]()
![]()
Rabbit集群
![]()
另外两台也要装上rabbitmq
#3台同步hosts文件
vim /etc/hosts 同步
192.168.40.145 jenkinsnew
192.168.40.146 jenkinsagent
192.168.40.147 sonarqube
主Rabbitmq是 192.168.40.146
#复制
[root@jenkinsagent rabbitmq]# scp /var/lib/rabbitmq/.erlang.cookie root@jenkinsnew:/var/lib/rabbitmq/.erlang.cookie
[root@jenkinsagent rabbitmq]# scp /var/lib/rabbitmq/.erlang.cookie root@sonarqube:/var/lib/rabbitmq/.erlang.cookie
#启动RabbitMQ服务,顺带启动Erlang虚拟机和RabbitMQ应用服务,3个节点执行命令
rabbitmq-server -detached
#节点jenkinsnew上执行
rabbitmqctl stop_app(rabbitmqctl stop_会将Erlang虚拟机关闭,rabbitmqctl stop_app只会关闭rabbitmq服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@jenkinsagent
rabbitmqctl start_app
#节点sonarqube执行
rabbitmqctl stop_app(rabbitmqctl stop_会将Erlang虚拟机关闭,rabbitmqctl stop_app只会关闭rabbitmq服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@jenkinsnew
rabbitmqctl start_app
#
[root@sonarqube rabbitmq]# rabbitmqctl cluster_status
Cluster status of node rabbit@sonarqube ...
Basics
Cluster name: rabbit@jenkinsagent
Disk Nodes
rabbit@jenkinsagent
rabbit@jenkinsnew
rabbit@sonarqube
Running Nodes
rabbit@jenkinsagent
rabbit@jenkinsnew
rabbit@sonarqube
#设置角色
[root@jenkinsagent rabbitmq]# rabbitmqctl add_user admincluster 123456
#administrator 不能大写Administrator 登陆会报错Not management user
[root@jenkinsagent rabbitmq]# rabbitmqctl set_user_tags admincluster administrator
[root@jenkinsagent rabbitmq]# rabbitmqctl set_permissions -p "/" admincluster ".*" ".*" ".*"
镜像队列
![]()
![]()
![]()