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.config

[

{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创建成功