千万PV,RabbitMQ群集配置

栏目: 后端 · 发布时间: 7年前

内容简介:RabbitMQ (Message Qucue, 消息队列)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用链接来连接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。 排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求在项目中,将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大地节省了服务器的请求响应时间,从

千万PV

RabbitMQ群集配置

(1)什么是RabbitMQ

RabbitMQ (Message Qucue, 消息队列)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用链接来连接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。 排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求

(2)RabbitMQ应用场景

在项目中,将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大地节省了服务器的请求响应时间,从而提高了系统的吞吐量。 RabbitMQ支持消息的持久化,也就是数据写在磁盘上。为了数据安全考虑,大多数企业都会选择持久化。当然如果觉得不需要消息持久化,那么使用内存节点即可!其实最合适的方案就是既有内存节点,又有磁盘节点,下面的案例就是这样一个例子。 消息队列持久化包括了3个部分:

  • (1) Exchange持久化,在声明时指定durable=> 1。
  • (2) Queue持久化,在声明时指定durable=> 1。
  • (3)消息持久化,在投递时指定delivery. mode=>2 (1是非持久化)。

实现步骤

设计架构模式:

在一个集群里,有三台服务器,其中一台使用磁盘模式,另两台使用内存模式。两台内存模式的节点无疑速度更快,因此通过客户端连接访问它们。使用客户端不可能分别连接两个内存节点,肯定是通过前端反向代理左轮询分发请求。但是相心前端反向代理服务器故障,可以通过Kepint软件o一个离可用架构。 而磁盘模式的节点,由于磁盘I0相对较慢,因此仅作数据备份使用。注意这里请将三台服务器都连接上互联网并安装软件包。另外RabbitMQ集点必须在同一个网段里,如果是跨广域网,效果就会变差。

RabbitMQ群集具体配置信息表如下

IP地址 主机名 操作系统 防火墙和SElinux 用途
192.168.179.128 mq1 CentOS7 关闭 磁盘节点
192.168.179.129 mq2 CentOS7 关闭 内存节点
192.168.179.130 mq3 CentOS7 关闭 内存节点

配置RabbitMQ群集

(1)关闭防火墙和SElinux

#三台都要关
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0

(2)修改主机名

[root@localhost ~]# vim /etc/hostname    //其他两台相同
  mq01.localdomain

(3)修改hosts文件

![image] 千万PV,RabbitMQ群集配置

(4)安装yum源

[root@mq01 ~]# yum install -y epel-release
[root@mq01 yum.repos.d]# yum install -y rabbitmq-server

-----------如果安装不了请执行下列操作---------
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum -y install epel-release

yum clean all && yum makecache

查看配置

#//查看插件安装情况
[root@mq01 yum.repos.d]# /usr/lib/rabbitmq/bin/rabbitmq-plugins list

#//启用rabbitmq_management服务
[root@mq01 yum.repos.d]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management

[root@mq01 ~]# systemctl start rabbitmq-server.service

检查三台的集群状态,目前相互独立,没有形成集群。

千万PV,RabbitMQ群集配置

systemctl stop rabbitmq-server.service //停止三台服务器

#//三台值配置成一样的,复制内容到其他两台

vi /var/lib/rabbitmq/.erlang.cookie

千万PV,RabbitMQ群集配置
more /var/lib/rabbitmq/.erlang.cookie //验证三台服务器上的cookie,集群场景下,三台的值需要相同

systemctl start rabbitmq-server.service

netstat -anpt | grep 5672

在02和03上操作---内存节点

rabbitmqctl stop_app

rabbitmqctl join_cluster --ram rabbit@mq01 //加入到磁盘节点

rabbitmqctl start_app

验证群集状态

[root@mq01 ~]# rabbitmqctl cluster_status 
Cluster status of node rabbit@mq01 ...
[{nodes,[{disc,[rabbit@mq01]},{ram,[rabbit@mq03,rabbit@mq02]}]},
 {running_nodes,[rabbit@mq03,rabbit@mq02,rabbit@mq01]},
 {cluster_name,<<"rabbit@mq01">>},
 {partitions,[]}]
...done.

http://192.168.175.132:15672/ //默认用户名:guest 密码:guest

千万PV,RabbitMQ群集配置

登陆进入页面

千万PV,RabbitMQ群集配置

创建消息队列

千万PV,RabbitMQ群集配置

---------以下简单增加消息队列-----

queues->
name:aa  //消息队列的名称
durability:durable  //是否支持持久化
node:rabbit@mq01
arguments:x-ha-policy = all

add queue 完成

在新建一个bb队列。arguments项不填写。

add queue 完成

--------------以下在aa和bb队列中新建消息----

点aa->Publish message

mode:2-persistent
haders a = 123
properties message_id=1

payload:1234

publish message 

close 完成

---------------------------------------------
service rabbitmq-server stop //把mq01关闭

http://192.168.80.185:15672/ 在02或03上测试消息是否存在。

service rabbitmq-server stop //把02关闭在03上查看应该消息还在,注意地址

http://192.168.80.186:15672/

service rabbitmq-server start //把01和02都启动,消息不同步

rabbitmqctl sync_queue aa //在任意节点手动同步队列

ll /var/lib/rabbitmq

ll /var/lib/rabbitmq/mnesia/rabbit\@mq01/queues/  //在mq01上查看消息队列中的信息
ll /var/lib/rabbitmq/mnesia/rabbit\@mq02/queues/
ll /var/lib/rabbitmq/mnesia/rabbit\@mq03/queues/

-------------------以下JMeter压力测试软件----https://jmeter.apache.org/download_jmeter.cgi

下载-Binaries 包

-------在微软系统下配置 JAVA 环境---

安装jdk-8u161-windows-x64

右击电脑-》属性-》高级-》环境变量-》系统变量-》PATH-》编辑-》新建-》加入下面的路径-》确定

C:\Program Files\Java\jdk1.8.0_161\bin

cmd
java -version

解压JMeter,然后到解压目录中的bin目录下运行,jmeter.bat 启动程序

在选项中选择语言环境。

使用技巧,查找相关资料。

以上所述就是小编给大家介绍的《千万PV,RabbitMQ群集配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript Patterns

JavaScript Patterns

Stoyan Stefanov / O'Reilly Media, Inc. / 2010-09-21 / USD 29.99

What's the best approach for developing an application with JavaScript? This book helps you answer that question with numerous JavaScript coding patterns and best practices. If you're an experienced d......一起来看看 《JavaScript Patterns》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具