标签:检索 tab stat c99 用途 hosts channel 技术 hang
Rabbitmq简介MQ全称为MessageQueue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。
RabbitMQ 是一个由 Erlang 语言开发的 AMQP(高级消息队列协议) 的开源实现。RabbitMQ 属于消息中间件,主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
单一模式
普通模式(默认集群模式)
镜像模式(队列做成镜像队列,存在多个节点)
Rabbitmq的集群节点包括内存节点、磁盘节点,支持消息持久化、也就是数据写在磁盘上。
(1)客户端连接到消息队列服务器,打开一个channel。
(2)客户端声明一个exchange,并设置相关属性。
(3)客户端声明一个queue,并设置相关属性。
(4)客户端使用routing key,在exchange和queue之间建立好绑定关系。
(5)客户端投递消息到exchange。
(6)Exchange接收到消息根据消息的key和已经设置的binding,进行消息路由,将消息投递到queues中,应用程序双方就实现了通信。
一个集群中有三台服务器,其中一台使用磁盘模式,另外两台是内存模式。客户端通过前端反向代理去连接两台内存模式服务器。注意将三台服务器都连上互联网并安装软件包。
主机名 | 操作系统 | IP地址 | 用途 |
---|---|---|---|
mq01 | CentOS7 | 192.168.37.128 | 磁盘节点 |
mq02 | CentOS7 | 192.168.37.130 | 内存节点 |
mq03 | CentOS7 | 192.168.37.131 | 内存节点 |
++++++三台服务器相同操作++++++
1、关闭防火墙、安全功能
systemctl stop firewalld.service
setenforce 0
2、首先修改三台服务器的主机名和hosts文件
hostnamectl set-hostname mq01
bash
vim /etc/hosts
192.168.37.128 mq01
192.168.37.130 mq02
192.168.37.131 mq03
3、yum安装软件包
yum install -y epel-release #epel为扩展软件包
yum install -y rabbitmq-server #rabbitmq软件包
4、建立软连接
ln -s /usr/lib/rabbitmq/bin/* /usr/bin/
5、查看插件安装情况
rabbitmq-plugins list
6、开启管理服务
rabbitmq-plugins enable rabbitmq_management
7、开启rabbitmq服务
systemctl start rabbitmq-server.service
netstat -ntap |grep 5672
8、查看各自的群集状态
rabbitmqctl cluster_status
mq01
mq02
mq03
9、关闭服务,复制配置文件后开启
systemctl stop rabbitmq-server.service
//隐藏文件,三台配置一样,将磁盘节点上的文件内容复制到其他2台
vim /var/lib/rabbitmq/.erlang.cookie
systemctl start rabbitmq-server.service
++++++以下操作在内存节点上++++++
1、将mq02、mq03内存节点服务器分别加入到磁盘节点
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@mq01 #加入到磁盘节点
#ram:以内存节点形式添加,不加磁盘形式
rabbitmqctl cluster_status #验证集群状态
mq02
mq03
2、查看mq01磁盘节点服务器的集群状态
rabbitmqctl cluster_status
++++++rabbit图形化操作++++++
1、登录磁盘节点服务器
http://192.168.37.128:15672/ 默认用户:guest 密码:guest
2、在磁盘节点服务器上创建策略
name: my_ha
pattern: ^a
Apply to : Exchange and queues
definition: ha-mode all
3、查看策略(三台服务器同步)
mq01
mq02
mq03
4、在磁盘节点服务器上增加消息队列
Name: aa
Durabiliy: Durable
Node: rabbit@mq01
Auto delete: No
5、在新建队列中写入消息
mode: 2-persistent
headers: a = 123
properties: id=1
payload: hello,world!
6、查看队列消息
标签:检索 tab stat c99 用途 hosts channel 技术 hang
原文地址:http://blog.51cto.com/13784264/2306879