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

RabbitMQ 简介 :

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

MQ特点

  • MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。

RabbitMQ 结构图 :

  • Exchange : 消息交换机,它指定消息按什么规则,路由到那个列队。
  • Queue : 消息列队载体,每个消息都会被投入到一个或多个列队中。
  • Routing Key : 路由关键字,Exchange 根据这个关键字进行消息投递。

消息列队的使用过程 :

  • 1.客户端连接到消息列队服务器,打开一个 Channel(消息通道)。
  • 2.客户端声明一个 Exchange,并设置相关属性。
  • 3.客户端声明一个 Queue ,并设置相关属性。
  • 4.客户端使用 Routing Key,在 Exchange和 Queue之间建立好绑定关系。
  • 5.客户端投递消息到 Exchange。

本案环境 :

主机名 系统 IP地址 防火墙和SELinux 用途
mq01 CentOS 7.3 192.168.217.137 关闭 磁盘节点
mq02 CentOS 7.3 192.168.217.138 关闭 内存节点
mq03 CentOS 7.3 192.168.217.139 关闭 内存节点

RabbitMQ 群集部署 :

1.修改所有主机名(重启生效):

systemctl stop firewalld.service
setenforce 0

vim /etc/hostname    #其他两台相同
mq01.localdomain

vim /etc/hosts        #添加
192.168.217.137 mq01
192.168.217.138 mq02
192.168.217.139 mq03

2.安装 rabbitmq 服务 :

yum install -y epel-release     #安装epel源

yum install -y rabbitmq-server  #安装rabbitmq服务
[[email protected] ~]# /usr/lib/rabbitmq/bin/rabbitmq-plugins list  #查看插件安装信息
[ ] amqp_client                       3.3.5
[ ] cowboy                            0.5.0-rmq3.3.5-git4b93c2d
[ ] eldap                             3.3.5-gite309de4
[ ] mochiweb                          2.7.0-rmq3.3.5-git680dba8
......
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management #启动群集管理服务

3.配置群集功能 :

vim /var/lib/rabbitmq/.erlang.cookie
#把mq01.erlang.cookie内容复制到mq02、mq03
systemctl restart rabbitmq-server.service   #重启服务

4.在mq02、mq03上操作,加入mq01群集 :

rabbitmqctl stop_app   #关闭节点

rabbitmqctl join_cluster --ram [email protected] #加入到磁盘节点

rabbitmqctl start_app    #开启节点

5.验证集群状态 :

[[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,[]}]
#磁盘节点为mq01,内存节点为mq02、mq03.

6.web管理 :

浏览器访问 http://192.168.217.137:15672/ #默认用户名:guest 密码:guest

原文地址:http://blog.51cto.com/13640803/2153258

时间: 2024-10-10 01:15:07

千万PV 网站架构之 RabbitMQ 消息列队的相关文章

千万PV网站架构之RabbitMQ(消息队列)安装、集群

RabbitMQ介绍: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过 队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求. RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统.他遵循Mozill

从100PV到1亿级PV网站架构演变

如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结合我自已14年网站人的经历记录一些架构演变中的体会. 1:积累是必不可少的 架构师不是一天练成的. 1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HT

从100PV到1亿级PV网站架构演变(转)

http://www.linuxde.net/2013/05/13581.html 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结合我自已14年网站人的经历记录一些架构演变中的体会. 积累是必不可少的 架构师不是一天练成的. 1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTML中,再用ftp传到服务

大型网站架构系列:消息队列(二)

本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka).[第二篇的内容大部分为网络资源的整理和汇总,供大家学习总结使用,最后有文章来源] 本次分享大纲 消息队列概述(见第一篇:大型网站架构系列:分布式消息队列(一)) 消息队列应用场景(见第一篇:大型网站架构系列:分布式消息队列(一)) 消息中间件示例(见第一篇:大型网站架构系列:分布式消息队列(一)) JMS消息服务 常用消息队列 参考(推荐)资料 本

大型网站架构系列:消息队列(二) (转)

本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka).[第二篇的内容大部分为网络资源的整理和汇总,供大家学习总结使用,最后有文章来源] 本次分享大纲 消息队列概述(见第一篇:大型网站架构系列:分布式消息队列(一)) 消息队列应用场景(见第一篇:大型网站架构系列:分布式消息队列(一)) 消息中间件示例(见第一篇:大型网站架构系列:分布式消息队列(一)) JMS消息服务 常用消息队列 参考(推荐)资料 本

大型网站架构系列:消息队列(二)(转)

大型网站架构系列:消息队列(二) 本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka).[第二篇的内容大部分为网络资源的整理和汇总,供大家学习总结使用,最后有文章来源] 本次分享大纲 消息队列概述(见第一篇:大型网站架构系列:分布式消息队列(一)) 消息队列应用场景(见第一篇:大型网站架构系列:分布式消息队列(一)) 消息中间件示例(见第一篇:大型网站架构系列:分布式消息队列(一)) JMS消息服务

在CentOS7上部署百万PV网站架构

网站架构概述 网站架构是根据客户需求分析的结果,准确定位网站目标群体,设定网站的整体架构,规划.设计网站栏目及其内容,制定网站开发流程的顺序,最大限度地进行高效资源分配与管理的设计. 百万PV网站架构 案例设计 采用四层模式实现,主要分为前端反向代理层.Web层.数据库缓存层和数据库层.前端反向代理层层采用主备模式,Web层采用群集模式,数据库缓存层采用主备模式,数据库层采用主从模式. 为了更接近生产环境,采用两台实体机部署此次环境,将前端反向代理层.数据库缓存层.数据库层部署在实体机上,只将W

【超详细】在centos7上部署百万PV网站架构

PV(Page View,页面浏览量)即点击量,通常意义上说PV的多少是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标.pv的解释是这样的:一个访问者在24小时(0点-23点)内到底看了网站的几个页面.需要注意的是:同一个人浏览网站的同一个页面,不重复计算pv量,点击100次页只算1次. 案例概述:本案例设计采用四层模型实现,主要分为前端反向代理层,web层,数据库缓存层和数据库层.前端反向代理词采用主备模式,web层采用群集模式,数据库缓存层采用主备模式,数据层采用主从模式这里我为了节省

大型网站架构之分布式消息队列【转】

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统). 本次分享大纲 消息队列概述 消息队列应用场景 消息中间件示例 JMS消息服务 常用消息队列 参考(推荐)资料 本次分享总结 一.消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间件. 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,K