Rabbitmq

一 rabbitmq

RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种客户端

二 AMQP

全称高级消息队列协议。是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。

三rabbitmq 功能

在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

四 集群中节点的分配

1.集群的元数据:集群及节点的相关信息,存储在集群中的每一台节点上。

2.集群中节点的类型:disc 节点:将元数据存储在磁盘上

  ram 节点:将元数据存储在内存中

注:ram 节点的特点:速度较 disc 节点快,重启后内存中的数据将会丢失

3.集群中节点的分配:至少一个 disc 节点如果是单节点系统,那么节点类型只能是 disc

4.当新节点加入到集群中,或者节点从集群中退出,需要通知集群中所有的 disc 节点。

五 rabbitmq 的安装与监控

1.配置 epel 源

#cd /etc/yum.repos.d

#vim y.repo

3.安装 rabbitmq

 #yum --enablerepo=y install rabbitmq-server -y

4.启动服务

 #systemctl start rabbitmq-server

 查看服务状态:#netstat -lantu|grep 5672

5.启用 web 管理客户端

 加载 web 管理插件:

#rabbitmq-plugins enable rabbitmq_management

 重启 rabbitmq:

#systemctl restart rabbitmq-server

 查看服务状态:netstat -lantu|grep 15672

注:web 端默认的用户名为 guest,默认密码为 guest。如需修改密码rabbitmqctl change_password guest password

6.使用 web 端管理 rabbitmq 服务器

使用浏览器浏览:http://rabbitmq服务器的IP:15672

使用真实机浏览:http://rabbitmq服务器的IP:15672

六 rabbitmq 集群的建立

1.准备实验环境:三台虚拟机,设置好主机名(host-4,host-5,host-6)配置好 IP 地址,编辑好/etc/hosts 文件,使得三台主机可以互相解析主机名。配置 ntp,使三台主机的时间同步

2每一台都下载安装rabbitmq

#vim /etc/yum.repos.d/y.repo

在另外两台主机上也配置yum源

#scp host-4:/etc/yum.repos.d/y.repo /etc/yum.repos.d/

每一台主机下载安装rabbitmq

#yum --enablerepo=y install rabbitmq-server -y

2.在主(host-4)节点上开启 rabbitmq 服务,以获得.erlang.cookie

 #systemctl restart rabbitmq-server

注:/var/lib/rabbitmq/.erlang.cookie 文件用于各节点之间的通信

3.在每个节点上

 编辑 rabbitmq 的配置文件

 #cd /etc/rabbitmq

 #mv rabbitmq.config rabbitmq.config.bak

 #vim rabbitmq.config

[

{rabbit,[

{default_user,<<"guest">>},

{default_pass,<<"guest">>}

]},

{kernel,[

]}

].

注:编写配置文件一定要按照上述格式

4.在 node2、node3 上复制 node1(主节点)上的.erlang.cookie

  #scp host-4:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/

#chown rabbitmq. .erlang.cookie

注:.erlang.cookie 的权限为 400,属主、属组应为 rabbitmq

5.重置主节点

  #rabbitmqctl stop_app

#rabbitmqctl start

6.将 node2、node3 加入至集群

#systemctl restart rabbitmq-server

  #rabbitmqctl stop_app

  #rabbitmqctl join_cluster --ram rabbit@host-4

  #rabbitmqctl start_app

注:node2、node3 加入集群后,可通过命令 rabbitmqctl cluster_status 来查看集群的信息

7.在每个节点上

 开启 web 管理功能:

#rabbitmq-plugins enable rabbitmq_management

 重启 rabbitmq-server:

#systemctl restart rabbitmq-server

8.使用浏览器访问主节点:http://主节点 IP:15672

 

可见集群内各节点的状态及节点类型(disc/ram)

七 集群内节点管理

1.查看集群状态(在每个节点上都可以查看)

 rabbitmqctl cluster_status

2.更改节点类型(在相应的节点上操作)

 rabbitmqctl stop_app

 rabbitmqctl change_cluster_node_type ram

 rabbitmqctl start_app

3.从集群中移除节点

 在被移除的节点上操作

 rabbitmqctl stop_app

 rabbitmqctl reset

 rabbitmqctl start_app

 使用命令 rabbitmqctl cluster_status 可查看当前集群状态

八 自动配置集群

1.准备实验环境:三台虚拟机,设置好主机名(node1,node2,node3)配置好 IP 地址,编辑好/etc/hosts 文件,使得三台主机可以互相解析主机名。配置 ntp,使三台主机的时间同步

2.在主节点上开启服务:#systemctl restart rabbitmq-server

3.在其他节点上:

#scp root@node1:/var/lib/rabbimq/.erlang.cookie /var/lib/rabbimq

注:注意.erlang.cookie 的属主、属组应为 rabbitmq

4.在所有节点上编辑配置文件

 #cd /etc/rabbitmq

 #mv rabbitmq.config rabbitmq.config.bak

 #vim rabbimq.config

[{rabbit,

[{cluster_nodes, {['rabbit@host-4', 'rabbit@host-5',

'rabbit@host-6'], disc}}]}].

5.所有节点重启 rabbitmq:

#systemctl restart rabbitmq-server

6.可通过命令:rabbitmqctl cluster_status 查看集群内节点状态也可以通过浏览器查看集群状态,但是需在每个节点上启动 web 管理功能插件

  • 39
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值