千万PV,RabbitMQ群集配置

千万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

#三台都要关
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# setenforce 0

(2)修改主机名

[[email protected] ~]# vim /etc/hostname    //其他两台相同
  mq01.localdomain

(3)修改hosts文件

![image]

(4)安装yum源

[[email protected] ~]# yum install -y epel-release
[[email protected] 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

查看配置

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

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

[[email protected] ~]# systemctl start rabbitmq-server.service

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

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

#//三台值配置成一样的,复制内容到其他两台
vi /var/lib/rabbitmq/.erlang.cookie

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 [email protected] //加入到磁盘节点

rabbitmqctl start_app 

验证群集状态

[[email protected] ~]# rabbitmqctl cluster_status
Cluster status of node [email protected] ...
[{nodes,[{disc,[[email protected]]},{ram,[[email protected],[email protected]]}]},
 {running_nodes,[[email protected],[email protected],[email protected]]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]}]
...done.

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

登陆进入页面

创建消息队列

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

queues->
name:aa  //消息队列的名称
durability:durable  //是否支持持久化
node:[email protected]
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 启动程序

在选项中选择语言环境。

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

原文地址:http://blog.51cto.com/13645280/2155033

时间: 2024-11-05 15:53:33

千万PV,RabbitMQ群集配置的相关文章

在CentOS7上实现RabbitMQ群集配置

一.什么是RabbitMQMQ(消息队列)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用链接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队值得是应用程序通过队列来通信.队列的使用出去了接收和发送应用程序同时执行的要求.RabbitMQ是目前流行的开源消息队列系统,用Erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现.

千万PV 网站架构之 RabbitMQ 消息列队

RabbitMQ 简介 : MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过 队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求.其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等. MQ特点 MQ是消费-

如何构建日均千万PV Web站点(二) 之~缓存为王~

随着网站业务的不断发展,用户的规模越来越大:介于中国无比蹩脚复杂的网路环境:南电信:北联通:中间竟然只用一条链路进行互联通信!有研究表明,网站访问延迟和用户流失率正相关,网站访问速度越慢,用户越容易失去耐心而离开.为了提高更好的用户体验,留住用户,网站需要加速网站访问速度.如今主要的手段只有使用CDN和反向代理了:此时网站的架构应该是这样的: 1.使用CDN和缓存服务器:CDN和反向代理的基本原理都是缓存数据,区别就在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网

如何构建日均千万PV Web站点 (一)

 其实大多数互联网网站起初的网站架构都是(Linux+Apache+MySQL+PHP). 不过随着时代的发展,科技的进步.互联网进入寻常百姓家的生活.所谓的用户的需求,铸就了一个个互联网大牛: http://www.trueland.net/IndustryNews/gjszl.shtml 近日研究机构we are social发布了<2014年全球社会化媒体.数字和移动业务数据洞察>,公布了其对全球互联网.关键社交.数字化业务和移动应用的统计数据.报告指出全球数字化业务正以惊人的趋势保持高

Rabbitmq群集搭建

Rabbitmq群集搭建 实验介绍 MQ(Message Queue消息队列)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用链接来连接他们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过队列来通信.队列的使用除去接收和发送应用程序同时执行的要求. RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用

ELK环境部署与群集配置

一.ELK是什么? 1.1  ELK由来 ELK是elasticsearch,logstash,kibana  这三个工具的简称 1.2  ELK三个组件的介绍 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,他可以对你的日志进行收集.过滤,并将其存储供以后使用(如,搜索). Kibana 也是一个开源和免费的工具,它Kibana可以为 L

千万 PV,百万PV什么意思?

关于 千万PV.百万PV到底是个什么意思,这里做个介绍. 首先介绍下pv的概念 PV(访问量):即Page View,页面刷新一次算一次. UV(独立访客):即Unique Visitor,一个客户端(电脑,手机)为一个访客: IP(独立IP):即Internet Protocol,指独立IP数 举个 “栗子”  : 在家的wifi,手机登录,电脑登录访问网站,分别访问5次(共10次): 结果就是:1 个 IP    2个UV   10个PV 千万PV的概念 一般说的千万PV都是指的 一天24小

如何构建日均千万PV Web站点 (三) Sharding

     其实国内许多大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,比如说国内那些大型购物交易网站它们都将自己的网站首页.商铺.订单.买家.卖家等拆分不同的产品线,分归不同的业务团队负责: 集体到技术,也会根据产品线划分,将一个网站拆分成许多不同的应用,每个应用用独立部署维护.应用之间可以通过一个超链接建立关系(在首页上的导航链接每个都指向不同的应用地址),也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据库存储系统来构成一个关联的完整系

Windows 2008 双机群集配置(for SQLServer)

此处配置Windows2008 群集,将用于SQLserver 2008 双机故障转移群集,此处SQLserver 的群集基于Windows群集实现.Windows 2008 集群更容易实现了,只要规划好IP和磁盘分配,可一直按窗口界面进行配置. 服务器要求: 本次测试要求3台服务器,1台域控制器(Windows 2003 .双网卡可选),2个集群节点(Windows server 2008.双网卡). 要求工具: WindowsInstaller 4.5 Redistributable Mic