rabbitmq集群

rabbitmq集群部署

若如初见. 提交于 2020-04-07 10:19:50
0x00 RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡。 RabbiMQ模式 RabbitMQ模式大概分为以下三种: (1)单一模式。 (2)普通模式(默认的集群模式)。 (3) 镜像模式(把需要的队列做成镜像队列,存在于多个节点,属于RabbiMQ的HA方案,在对业务可靠性要求较高的场合中比较适用)。 要实现镜像模式,需要先搭建一个普通集群模式,在这个模式的基础上再配置镜像模式以实现高可用。 RabbiMQ特点 RabbitMQ的集群节点包括内存节点、磁盘节点。RabbitMQ支持消息的持久化 也就是数据写在磁盘上,最合适的方案就是既有内存节点,又有磁盘节点。 0x01 部署步骤 hosts环境 /etc/hosts 192.168.66.61 xx-mq-1 192.168.66.62 xx-mq-2 192.168.66.63 xx-mq-3 安装包 # wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm # wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15

部署Rabbitmq集群

浪子不回头ぞ 提交于 2020-04-06 16:25:08
一、部署Rabbitmq集群 Rabbitmq集群大概分为两种方式: 1、普通模式:默认的集群模式,消息的尸体只存在一个节点上; 2、镜像模式:把需要的队列做成镜像,存在于多个节点。 ha-mode: all:列队到所有节点; exatly:随机镜像到其他节点上; nodes:镜像到指定节点上。 集群节点模式: 1、内存节点:工作在内存上; 2、磁盘节点:工作在磁盘上; 例外:内存节点和磁盘节点共同存在,提高访问速度的同时增加数据持久化。 相比内存节点虽然不写入磁盘,但是它执行比磁盘节点要好,集群中,只需要一个磁盘来保存状态就足够了,如果集群中只有内存节点,那么节点一旦宕机,所有的状态、消息都会丢失,无法实现数据的持久化。 rpm包(提取码:rv8g) 1、环境如下 2、安装rabbitmq服务 在192.168.171.134/135/140节点上进行如下操作,部署rabbitmq服务: [root@localhost ~]# mkdir rabbitmq [root@localhost ~]# cd rabbitmq/ [root@localhost rabbitmq]# ls erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm

五分钟学后端技术:如何学习Java工程师必知必会的消息队列

扶醉桌前 提交于 2020-04-06 05:47:41
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 什么是消息队列 “RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词,可能你是熟练使用消息队列的老手,又或者你是不懂消息队列的新手,不论你了不了解消息队列,本文都将带你搞懂消息队列的一些基本理论。如果你是老手,你可能从本文学到你之前不曾注意的一些关于消息队列的重要概念,如果你是新手,相信本文将是你打开消息队列大门的一板砖。 根据百度百科的说法,“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。` 为什么要使用消息队列 我觉得使用消息队列主要有两点好处: 1.通过异步处理提高系统性能(削峰、减少响应所需时间); 2.降低系统耦合性。如果在面试的时候你被面试官问到这个问题的话,一般情况是你在你的简历上涉及到消息队列这方面的内容,这个时候推荐你结合你自己的项目来回答。 《大型网站技术架构》第四章和第七章均有提到消息队列对应用性能及扩展性的提升。 在我平时的日常工作中,用到消息队列的场景可不少,比如,我有一个定时任务需要在A应用每天7点开始调度,那么定时任务系统如何告诉这个A应用呢

Rabbitmq群集部署

 ̄綄美尐妖づ 提交于 2020-04-05 00:36:25
一、部署Rabbitmq集群 Rabbitmq集群大概分为两种方式: 1、普通模式:默认的集群模式,消息的尸体只存在一个节点上; 2、镜像模式:把需要的队列做成镜像,存在于多个节点。 ha-mode: all:列队到所有节点; exatly:随机镜像到其他节点上; nodes:镜像到指定节点上。 集群节点模式: 1、内存节点:工作在内存上; 2、磁盘节点:工作在磁盘上; 例外:内存节点和磁盘节点共同存在,提高访问速度的同时增加数据持久化。 相比内存节点虽然不写入磁盘,但是它执行比磁盘节点要好,集群中,只需要一个磁盘来保存状态就足够了,如果集群中只有内存节点,那么节点一旦宕机,所有的状态、消息都会丢失,无法实现数据的持久化。 rpm包 (提取码:rv8g) 1、环境如下 2、安装rabbitmq服务 在192.168.171.134/135/140节点上进行如下操作,部署rabbitmq服务: [root@localhost ~]# mkdir rabbitmq [root@localhost ~]# cd rabbitmq/ [root@localhost rabbitmq]# ls erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm

五分钟学后端技术:如何学习Java工程师必知必会的消息队列

我的未来我决定 提交于 2020-03-31 23:01:32
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 什么是消息队列 “RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词,可能你是熟练使用消息队列的老手,又或者你是不懂消息队列的新手,不论你了不了解消息队列,本文都将带你搞懂消息队列的一些基本理论。如果你是老手,你可能从本文学到你之前不曾注意的一些关于消息队列的重要概念,如果你是新手,相信本文将是你打开消息队列大门的一板砖。 根据百度百科的说法,“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。` 为什么要使用消息队列 我觉得使用消息队列主要有两点好处: 1.通过异步处理提高系统性能(削峰、减少响应所需时间); 2.降低系统耦合性。如果在面试的时候你被面试官问到这个问题的话,一般情况是你在你的简历上涉及到消息队列这方面的内容,这个时候推荐你结合你自己的项目来回答。 《大型网站技术架构》第四章和第七章均有提到消息队列对应用性能及扩展性的提升。 在我平时的日常工作中,用到消息队列的场景可不少,比如,我有一个定时任务需要在A应用每天7点开始调度,那么定时任务系统如何告诉这个A应用呢

RabbitMQ集群架构之使用Haproxy实现高可用负载均衡

蓝咒 提交于 2020-03-28 15:54:20
RabbitMQ集群架构模式 那么对于Rabbitmq是单点应用来说,如果rabbitmq整个消息mq都会摊掉,所有在mq的消息高可用部分,就显得尤为重要了,那么在mq中提供了四种集群架构方案: 1、主备模式 (Warren) 2、镜像模式 (Mirror) 3、远程模式 (Shovel) 4、多活模式 (Federation) 在我们开发中最直接的模式就是主备模式:主要实现RabbitMQ的高可用集群,一般在并发和数据量不高的情况下,这种模型非常的好用且简单,主备模式也称为Warren模式 也就是一主一备,对于集群来说至少有两台服务器,那么这两台服务器一台在工作,一台在闲置,注意,这个的主备和我们之前的主从是不一样的,主从的话是一台作为主服务器,一台作为从服务器,虽然这两台是数据同步,主负责读写,而从只负责只读,而主备是一台工作一台闲着,如果一台服务器宕机了,那么备服务器切换过来,可能的话,这种对于负载均衡的话一台只忙着干活,一台只闲着,这种的生产中用的也很少,这种会造成我们资源的一个浪费。 镜像模式:集群模式非常经典的就是Mirror镜像模式,保证100%数据不丢失,在实际工作中也是用的最多的,而且实现集群也非常简单,一般互联网大厂都会构建这种镜像集群模式,原理主要是在主备的基础上进行了扩展,集群中所有的节点设备都是同步的,每一个队列,交换机里面的配置信息和我们的数据都是同步的

消息队列rabbitmq

扶醉桌前 提交于 2020-03-22 01:01:02
异步逻辑,在工程,集群中,实现 1 通信解耦 2 消峰限流 系统功能 : 秒杀 , 前台门户网站接收海量并发请求 , 只做消息的发送 ( 生产端 ), 发送到消息队列 . 由消费系统实现消费逻辑 , 将秒杀的用户 / 商品入库 ; 历史 业务系统与认证系统的认证(具有高效,权威的算法机构)通信 Rabbitmq 支持企业级别的消息队列功能;性能极高(并发性能),内部使用erlang语言编写交换机的组件,实现多种使用模式的消息队列; 结构 客户端 :rabbitmq不同的模式,对接的客户端语言不同 角色:生产端,负责发送消息到交换机; 消费端,监听队列,获取队列的消息,进行消费; 核心组件 连接对象:长连接(connection),信道连接(channel) 客户端创建单个长连接,在长连接上频繁使用,销毁短连接 交换机:基于erlang语言开发的,并发语言,程序的运行可以控制线程等cpu资源,实现并发的定义.并发能力超高;交换机需要绑定队列使用;在rabbitmq中存在一个默认的交换机AMQP Default 名字是"",绑定一切队列;生产端只能将消息发送给交换机处理 交换机的类型:topic ( 主题类型 ) ,fanout ( 发布订阅 ) ,direct ( 路由类型 ); AMQP default 类型路由类型; 队列 QUEUE: 实现消息存储 , 被消费的位置的内存组件

Linux 部署 rabbitMQ集群

泄露秘密 提交于 2020-03-20 18:37:28
1. 部署Erlang 1.1 RabbitMQ依赖于Erlang,版本对应请查看 https://www.rabbitmq.com/which-erlang.html 1.2 下载安装Erlang # 添加epel扩展源 yum install epel-release # 先删除可能存在的erlang(非必须) yum list erlang yum remove erl* # 清空和更新安装源(非必须) yum clean yum update # 参考 https://github.com/rabbitmq/erlang-rpm -> Erlang 21.x -> o use Erlang 21.x on CentOS 6 # 配置安装源 vim /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=0 # 安装 yum

运维工程师职业技能发展路线框架

你。 提交于 2020-03-20 12:38:47
运维框架 目录 运维框架 1 1. 基础知识 5 1.1 系统原理 5 1.2 命令基础 6 1.3 网络基础 6 1.4 排错基础 6 1.5 优化基础 6 1.6 安全基础 6 1.7 原理基础 6 2. WEB 管理 7 2.1 Nginx 7 2.1.1 部署 7 2.1.2 优化 7 2.1.3 备份 7 2.1.4 恢复 7 2.2 Httpd 7 2.3 Tomcat 7 2.4 IIS 7 3. 数据库 7 3.1 MySQL 7 3.1.1 部署 7 3.1.2 优化 7 3.1.3 备份 7 3.1.4 恢复 7 3.2 Oracle 8 3.3 MongoDB 8 3.4 Redis 8 3.5 Memcached 8 4. 消息队列 8 4.1 ActiveMQ 8 4.2 RabbitMQ 8 4.2.1 部署环境 8 4.2.2 版本依赖 8 4.2.3 安装包下载地址 8 4.2.4 安装步骤 8 4.2.5 常用命令 9 5. 监控 11 5.1 Zabbix 11 5.2 Prometheus 11 5.3 Cacti 11 5.4 Nagios 11 6. CI/CD 12 6.1 Jenkins 12 7. 日志管理 12 7.1 ELK 12 8. 高可用 / 集群 12 8.1 Lvs 12 8.2 Keepalived 12 8.3

每日进步一点点:解读消息中间件—RabbitMQ(集群原理与搭建篇)

亡梦爱人 提交于 2020-03-17 22:51:53
摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。 对于RabbitMQ这么成熟的消息队列产品来说,搭建它并不难并且也有不少童鞋写过如何搭建RabbitMQ消息队列集群的博文,但可能仍然有童鞋并不了解其背后的原理,这会导致其遇到性能问题时无法对集群进行进一步的调优。本篇主要介绍RabbitMQ集群方案的原理,如何搭建具备负载均衡能力的中小规模RabbitMQ集群,并最后给出生产环境构建一个能够具备高可用、高可靠和高吞吐量的中小规模RabbitMQ集群设计方案。 一、RabbitMQ集群方案的原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式