分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

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

发布时间:2023-09-06 01:27责任编辑:傅花花关键词:网站架构
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用途
mq01CentOS 7.3192.168.217.137关闭磁盘节点
mq02CentOS 7.3192.168.217.138关闭内存节点
mq03CentOS 7.3192.168.217.139关闭内存节点

RabbitMQ 群集部署 :

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

systemctl stop firewalld.servicesetenforce 0vim /etc/hostname ???#其他两台相同mq01.localdomainvim /etc/hosts ???????#添加192.168.217.137 mq01192.168.217.138 mq02192.168.217.139 mq03

2.安装 rabbitmq 服务 :

yum install -y epel-release ????#安装epel源yum install -y rabbitmq-server ?#安装rabbitmq服务
[root@mq01 ~]# /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 rabbit@mq01 #加入到磁盘节点rabbitmqctl start_app ???#开启节点

5.验证集群状态 :

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

6.web管理 :

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

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

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved