rabbitmq集群

搭建 RabbitMQ Server 高可用集群

旧巷老猫 提交于 2019-12-02 23:59:30
阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 因为公司测试服务器暂不能用,只能在自己电脑上重新搭建一下 RabbitMQ Server 高可用集群,正好把这个过程记录下来,以便日后查看。 公司测试服务器上的 RabbitMQ 集群,我搭建的是三台服务器,因为自己电脑空间有限,这边只能搭建两台服务器用作高可用集群,用的是 Vagrant 虚拟机管理工具。 环境介绍: RabbitMQ 节点 IP 地址 工作模式 node1 192.168.1.50 DISK CentOS 7.0 - 64位 node2 192.168.1.51 DISK CentOS 7.0 - 64位 整体架构: 1. 准备工作 首先,在 node1 服务器上,修改 vi /etc/hostname : node1 在 node2 服务器上,修改 vi /etc/hostname : node2 然后在 node1 服务器上,修改 vi /etc/hosts : node1 192.168.1.50 node2 192.168.1.51 127.0.0.1 node1 ::1 node1 在 node2 服务器上,修改 vi /etc/hosts : 192

docker部署haproxy负载均衡rabbitmq集群

匿名 (未验证) 提交于 2019-12-02 23:43:01
创建rabbitmq容器 docker network create rabbtimanet 创建三节点rabbitmq容器 rabbitmq1 : docker run -d --name=rabbitmq1 -p 5672:5672 -p 15672:15672 -e RABBITMQ_NODENAME=rabbitmq1 -e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' -h rabbitmq1 --net=rabbtimanet rabbitmq:management rabbitmq2 : docker run -d --name=rabbitmq2 -p 5673:5672 -p 15673:15672 -e RABBITMQ_NODENAME=rabbitmq2 -e RABBITMQ_ERLANG_COOKIE='YZSDHWMFSMKEMBDHSGGZ' -h rabbitmq2 --net=rabbtimanet rabbitmq:management rabbitmq3 : docker run -d --name=rabbitmq3 -p 5674:5672 -p 15674:15672 -e RABBITMQ_NODENAME=rabbitmq3 -e RABBITMQ_ERLANG_COOKIE=

消息中间件RabbitMQ-RabbitMQ简介

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenzhen_zsw/article/details/90745796 消息中间件RabbitMQ-RabbitMQ简介 RabbitMQ简介 1.1消息队列中间件简介 1.2什么是RabbitMQ 具体特点包括: 1.可靠性(Reliability) 2.灵活的路由(Flexible Routing) 3.消息集群(Clustering) 4.高可用(Highly Available Queues) 5.多种协议(Multi-protocol) 6.多语言客户端(Many Clients) 7.管理界面(Management UI) 8.跟踪机制(Tracing) 9.插件机制(Plugin System) 1.3架构图与主要概念 1.3.1架构图 1.3.2 主要概念 RabbitMQ简介 1.1消息队列中间件简介 1)异步处理; 2)应用解耦; 3)流量削锋; 4)消息通讯; 1.2什么是RabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品

Centos7 安装配置 Rabbitmq Cluster

匿名 (未验证) 提交于 2019-12-02 23:30:02
Rabbitmq介绍 RabbitMQ RabbitMQ的基础概念 RabbitMQ的特性 RabbitMQ 安装 $ cat /etc/yum.repos.d/rabbit.repo [rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=1 wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14-1.el7.noarch.rpm && yum localinstall rabbitmq-server-3.7.14-1.el7.noarch.rpm systemctl start rabbitmq-server $ ps -ef |grep rabbitmq root 13397 16602 0 17:14 pts/0 00:00:00 grep --color=auto

RabbitMQ面试题

匿名 (未验证) 提交于 2019-12-02 23:05:13
使用RabbitMQ有什么好处? 应用解耦(系统拆分) 异步处理(预约挂号业务处理成功后,异步发送短信、推送消息、日志记录等) 消息分发 流量削峰 消息缓冲 消息基于什么传输? 由于TCP连接的创建和销毁开销较大,且并发数受系统资源限制,会造成性能瓶颈。RabbitMQ使用信道的方式来传输数据。信道是建立在真实的TCP连接内的虚拟连接,且每条TCP连接上的信道数量没有限制。 消息怎么路由? 从概念上来说,消息路由必须有三部分: 交换器、路由、绑定 。生产者把消息发布到交换器上;绑定决定了消息如何从路由器路由到特定的队列;消息最终到达队列,并被消费者接收。常用的交换器主要分为一下三种: direct:如果路由键完全匹配,消息就被投递到相应的队列 fanout:如果交换器收到消息,将会广播到所有绑定的队列上 topic:可以使来自不同源头的消息能够到达同一个队列。 使用topic交换器时,可以使用通配符,比如:“*” 匹配特定位置的任意文本, “.” 把路由键分为了几部分,“#” 匹配所有规则等。特别注意:发往topic交换器的消息不能随意的设置选择键(routing_key),必须是由"."隔开的一系列的标识符组成。 如何做到信息的可靠性?确保消息正确地发送至RabbitMQ?确保消息接受方消费了消息?休息不丢失不重复? 发送方确认模式:将信道设置成confirm模式(发送方确认模式

RabbitMQ 3.7.7 控制台详解

為{幸葍}努か 提交于 2019-12-02 20:30:23
overview→Totals 所有队列的阻塞情况 Ready:待消费的消息总数 Unacked:待应答的消息总数 Total:总数 Ready+Unacked Publish:producter pub消息的速率。 Publisher confirm:broker确认pub消息的速率。 Deliver(manual ack):customer手动确认的速率。 Deliver( auto ack):customer自动确认的速率。 Consumer ack:customer正在确认的速率。 Redelivered:正在传递'redelivered'标志集的消息的速率。 Get (manual ack):响应basic.get而要求确认的消息的传输速率。 Get (auto ack):响应于basic.get而发送不需要确认的消息的速率。 Return:将basic.return发送给producter的速率。 Disk read:queue从磁盘读取消息的速率。 Disk write:queue从磁盘写入消息的速率。 整体角色的个数 Connections:client的tcp连接的总数。 Channels:通道的总数。 Exchange:交换器的总数。 Queues:队列的总数。 Consumers:消费者的总数。 Overview→Nodes broker的属性 Name

Rabbitmq-集群

£可爱£侵袭症+ 提交于 2019-12-02 19:56:21
RabbitMQ本身是基于Erlang编写的,Erlang天生支持分布式(通过同步Erlang集群各节点的cookie来实现),因此不需要像Kafka那样通过ZooKeeper来实现分布式集群。 1:元数据 RabbitMQ内部有各种基础构件,包括队列、交换器、绑定、虚拟主机等,他们组成了AMQP协议消息通信的基础,而这些构件以元数据的形式存在 2:内存节点与磁盘节点 在集群中的每个节点,要么是内存节点,要么是磁盘节点,如果是内存节点,会将所有的元数据信息仅存储到内存中,而磁盘节点则不仅会将所有元数据存储到内存上, 还会将其持久化到磁盘。所以在搭建集群的时候,为了保证数据的安全性和性能,最好是两种节点都要有 实验环境 test1:192.168.1.17 (磁盘节点) test2:192.168.1.18 (内存节点) test3:192.168.1.19 (内存节点) 一、前期准备 说明: ①三台机器都需要安装Rabbitmq服务 ②开启web管理界面rabbitmq-plugins enable rabbitmq_managemen 1:三台机器设置hostname [root@test1 ~]# hostnamectl set-hostname test1 [root@test2 ~]# hostnamectl set-hostname test2 [root@test3 ~

用C#实现Rabbitmq应用的小实例

这一生的挚爱 提交于 2019-12-02 19:00:01
RabbitMQ 是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用 Erlang 语言编写的,而集群和故障转移是构建在 开放电信平台 框架上的。所有主要的编程语言均有与代理接口通讯的客户端 库 安装RabbitMQ必须要有 Erlang的环境 ,没有装好环境的这里给出Erlang的官网可自行下载: https://www.erlang.org 一、配置RabbitMQ   1.将RabbitMQ的安装路径添加到环境变量中,启动RabbitMQ   2.启动WEB管理界面: rabbitmq-plugins enable rabbitmq_management   3.登录管理界面,RabbitMQ的管理界面的默认访问路径为: http://localhost:15672   4.可以使用 guest 用户登录,密码也是 guest      二、C#实现的小案例,这里给出官方教程: https://www.rabbitmq.com/getstarted.html   1.发布者       var factory = new ConnectionFactory(); factory.HostName = "localhost"; factory.UserName = "guest"; factory.Password =

消息中间间选型分析

≯℡__Kan透↙ 提交于 2019-12-02 18:56:07
一、前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。 目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如 ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ 等。不管选择其中的哪一款,都会有用的不趁手的地方,毕竟不是为你量身定制的。有些大厂在长期的使用过程中积累了一定的经验,其消息队列的使用场景也相对稳定固化,或者目前市面上的消息中间件无法满足自身需求,并且也具备足够的精力和人力而选择自研来为自己量身打造一款消息中间件。但是绝大多数公司还是不会选择重复造轮子,那么选择一款合适自己的消息中间件显得尤为重要。就算是前者,那么在自研出稳定且可靠的相关产品之前还是会经历这样一个选型过程。 在整体架构中引入消息中间件,势必要考虑很多因素,比如成本及收益问题,怎么样才能达到最优的性价比?虽然消息中间件种类繁多,但是各自都有各自的侧重点,选择合适自己、扬长避短无疑是最好的方式。 二、各类消息队列简述 ActiveMQ 是 Apache 出品的、采用 Java 语言编写的完全基于 JMS1

RabbitMQ的安装与使用

橙三吉。 提交于 2019-12-02 17:00:40
1、主流的消息中间件简单介绍哦。   1)、ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线,并且它一个完全支持jms(java message service)规范的消息中间件。其丰富的api,多种集群构建模式使得他成为业界老牌消息中间件,在中小企业中应用广泛。 如果不是高并发的系统,对于ActiveMQ,是一个不错的选择的,丰富的api,让你开发的很愉快哟。 注意:MQ衡量指标:服务性能,数据存储,集群架构。   2)、kafka是LinkedIn开源的分布式发布/订阅消息系统,目前归属于Apache顶级项目。kafka主要特点是基于Pull的模式来处理消息消费,最求高吞吐量,一开始的目的就是用于日志收集和传输,0.8版本开始支持复制,不支持事务,对消息的重复,丢失,错误没有严格要求,适量产生大量数据的互联网服务的数据收集业务。   3)、RocketMQ是阿里开源的消息中间件,目前也已经孵化为了Apache顶级项目,它是纯java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。RocketMQ思路起源于kafka,它对消息的可靠传输以及事务性做了优化,目前在阿里集团被广泛用于交易,充值,流计算、消息推送、日志流式处理,binglog分发等场景。   4)、RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现的