千万PV网站中RabbitMQ安装、集群

  • RabbitMQ是什么

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

  • RabbitMQ概念
    • Broker:简单来说就是消息队列服务器实体。
    • Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
    • Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
    • Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
    • Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
    • vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
    • producer:消息生产者,就是投递消息的程序。
    • consumer:消息消费者,就是接受消息的程序。
    • channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。
    主机名 IP 用途
    rabbitmq01 192.168.200.128 磁盘节点
    rabbitmq02 192.168.200.129 内存节点
    rabbitmq03 192.168.200.130 内存节点
    • 安装RabbitMQ
    • 1:需要配置三个节点的hosts文件,将如下的内容分别加入到三台服务器上。
      vim /etc/hostname    //其他两台为rabbitmq02、rabbitmq03
          rabbitmq01.localdomain
      # vim /etc/hosts  //添加下面三行
      192.168.200.128 rabbitmq01
      192.168.200.129 rabbitmq02
      192.168.200.130 rabbitmq03
      # init 6  //重启
      # service firewalld stop
      # setenforce 0
    • 2:安装rabbitmq软件。
      # yum install epel-release -y     //安装epel源
      # yum install -y rabbitmq-server  //安装软件
      # rabbitmq-plugins list     //查看插件安装情况
      # rabbitmq-plugins enable rabbitmq_management //启用rabbitmq_management服务
      # systemctl start rabbitmq-server.service   //启动rabbitmq服务
      # netstat -ntap | grep 5672
      # rabbitmqctl cluster_status  //检查三台的集群状态,目前相互独立,没有形成集群。



    • 构建Erlang群集

      # systemctl stop rabbitmq-server.service  //停止三台服务器
      # vi /var/lib/rabbitmq/.erlang.cookie //三台值配置成一样的,复制rabbitmq01的内容到其他两台
      # systemctl start rabbitmq-server.service
    • 在02、 03节点上操作
      # rabbitmqctl stop_app
      # rabbitmqctl join_cluster --ram [email protected] //加入到磁盘节点
      # rabbitmqctl start_app    


    • 创建策略
    • Name:策略名称
    • Pattern:匹配的规则 (这是表示匹配以a开头,^ 匹配所有队列)
    • Definition;使用ha-mode模式中的all,也就是同步所有匹配的队列。
    • Priority:优先级,默认是0,值越大优先级越大。


    • 添加队列
    • Name:队列名称
    • Durability:队列是否持久化(durable 是支持)
    • Auto delete:自动删除
    • Arguments:使用的策略类型

    • 添加队列消息
    • 2-Persistent:表示持久化,反之上面显示非持久化。
    • Headers: 随便填写
    • Properties:点击问号,现在一个ID号
    • Payload:消息内容

    睡觉剩下的明天写

    原文地址:http://blog.51cto.com/13630803/2152948

    时间: 2024-10-29 14:40:53

    千万PV网站中RabbitMQ安装、集群的相关文章

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

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

    11.RabbitMQ单机集群

    RabbitMQ集群设计用于完成两个目标:允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行,以及通过添加更多的节点来扩展消息通信的吞吐量. RabbitMQ会始终记录以下四种类型的内部元数据: 1.         队列元数据-队列的名称和它们的属性(是否持久化,是否自动删除) 2.         交换器元数据-交换器类型.名称和属性(可持久化等) 3.         绑定元数据-一张简单的表格展示了如何将消息路由到队列 4.         vhost元数据-为vhost内的队

    RabbitMQ分布式集群架构

    RabbitMQ分布式集群架构和高可用性(HA) https://blog.csdn.net/woogeyu/article/details/51119101 (一) 功能和原理 设计集群的目的 允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行 通过增加更多的节点来扩展消息通信的吞吐量 1 集群配置方式 RabbitMQ可以通过三种方法来部署分布式集群系统,分别是:cluster,federation,shovel cluster: 不支持跨网段,用于同一个网段内的局域网 可以随意的

    RabbitMQ(6) 集群部署

    单节点部署 rabbitmq单节点部署比较简单,可以使用apt-get等工具快速安装部署. wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add - echo 'deb http://www.rabbitmq.com/debian/ {distriubtion} main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list sudo

    RabbitMQ入门教程(十四):RabbitMQ单机集群搭建

    原文:RabbitMQ入门教程(十四):RabbitMQ单机集群搭建 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/78723467 分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 集群简介 理解集群先理解一下元数据 队列元数据:队列的名称和声明队列时设置的属性(是否持久化.是否自动删除.队列所属的节点)

    Hadoop2.6.0安装 — 集群

    文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自己学习的过程做以记录,另一方面希望也能帮助到和LZ一样的Hadoop初学者,去搭建自己的学习和练习操作环境,后期的 MapReduce 开发环境的配置和 MapReduce 程序开发会慢慢更新出来,LZ也是边学习边记录更新博客,路人如有问题欢迎提出来一起探讨解决,不足的地方希望路人多指教,共勉! 目

    关于大型高并发网站架构以及数据库集群的一些问题

    2014年6月11日,正在办理离职交接过程中,对未来的职业规划陷入了一些困境,想要专门从事管理工作,但是在任职期间所执行的管理工作仅仅属于team leader级别的,离项目经理感觉能力还有差距.对技术方面,总是有着难以克制的热情,多年的企业应用开发,锻炼了将需求转化为程序逻辑的能力.可对当下比较吃香的大型网站架构以及数据库集群技术,接触甚少.这也让我一直心有芥蒂,总想向着这个方向去探索.我想,如果想要成为一个好的架构师,这些事情如果不接触,你都不好意思跟人说你会做系统架构吧. IT给人的感觉就

    Apache Spark 2.2.0 中文文档 - 集群模式概述 | ApacheCN

    集群模式概述 该文档给出了 Spark 如何在集群上运行.使之更容易来理解所涉及到的组件的简短概述.通过阅读 应用提交指南 来学习关于在集群上启动应用. 组件 Spark 应用在集群上作为独立的进程组来运行,在您的 main 程序中通过 SparkContext 来协调(称之为 driver 程序). 具体的说,为了运行在集群上,SparkContext 可以连接至几种类型的 Cluster Manager(既可以用 Spark 自己的 Standlone Cluster Manager,或者

    在Spring Boot项目中使用Redis集群

    Redis安装 Mac 系统安装Redis brew方式安装 在命令汗执行命令 brew install redis 安装完成之后的提示信息 ==> Downloading https://homebrew.bintray.com/bottles/redis-5.0.2.mojave.bottle.tar.gz ######################################################################## 100.0% ==> Pouring