rabbitmq消息中间件里面的概念和功能
publisher(生产者) 生产消息的功能。
consumer(消费者) 消息的处理者。
broker 消息中间件所在的主机
virtual host 一个rabbitmq里面可以开启多个virtual host,类似于spring mvc里面filter的过滤,可以根据host的路径来过滤权限。
connection(连接) 生产者、消费者连接virtual host的tcp连接。
channel(通道) 一个连接里面可以开启多个channel,达到复用连接的作用。
exchange(消息分发) 路由交换消息。生产者生产的消息会发送给exchange,exchange来觉得这个消息发送给哪个或哪几个队列,作为消息分发的角色。
rabbitmq消息转发模式的多样性也是在exchange上提现出来的。
这里需要注意的地方,exchange只是消息转发,不会存储消息。
routing key(消息分发依据) exchange根据routing key在进行消息分发,分发到不同的队列
queue(队列,存储消息的容器) 经过exchange路由后,消息会存储到queue中,默认情况下,消息会先存储到内存,而后会持久化到硬盘
注意,在消息转发时,队列不是必须的,可以省略掉队列,从exchange直接到消费者,消息不会存储到rabbitmq上。
安装前准备工作
所有集群主机相互添加IP到hosts里,我这里使用双节点集群
#sudo vim /etc/hosts 1.1.1.1 rabbitmq01 1.1.1.2 rabbitmq02 |
安装 Erlang
添加yum仓库源
#sudo vim/etc/yum.repos.d/erlang.repo
[rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=1 |
刷新Yum缓存
#sudo yum makecache |
安装Erlang
#sudo yum install -y erlang |
下载rabbitmq
#curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash |
安装rabbitmq
sudo yum install rabbitmq-server-3.7.4-1.el6.noarch -y |
开启rabbitmq插件
#sudo rabbitmq-plugins enable rabbitmq_management |
更改配置文件
#sudo cd /var/lib/rabbitmq/ #sudo chmod u+w .erlang.cookie #sudo vim .erlang.cookie主节点无须更改(从节点配置:将主节点的文件拷贝过来) |
注意:erlang.cookie文件需要与主节点的一致,
#sudo chmod u-w .erlang.cookie #sudo chown rabbitmq:rabbitmq .erlang.cookie |
此文件的权限需要设置为400
新建rabbitmq配置文件
#sudo vim /etc/rabbitmq/rabbitmq.com
[ {rabbit, [ {loopback_users, []}, {heartbeat, 30}, {vm_memory_high_watermark, 0.4}, {disk_free_limit, {mem_relative, 2.0}} ]} ]. |
启动rabbitmq
#service rabbitmq-server start |
从节点加入到集群中
#sudo rabbitmqctl stop_app #sudo rabbitmqctl join_cluster rabbit@rabbitmq01 #sudo rabbitmqctl start_app |
查看集群状态
#sudo rabbitmqctl cluster_status |
集群将配置好,可以过浏览器设置Users,Virtual Hosts, policies
http://1.1.1.1:15672 默认账号密码为:guest
点击Add a user,输入账号,密码,选择Monitoring,点击Add User
点击Virtual Hosts,输入刚才创建的用户,点击Add virtual host
出现如下框,点击Set permission,virtual host将创建成功
创建policies
点击Add /update a policy
填入如图内容,点击Add policy,policies创建成功