rabbitmq集群

消息中间件常见问题

人走茶凉 提交于 2019-12-01 02:55:11
高可用,重复消费,幂等,可靠性传输,消息丢失 1、 kafka,rabbitMQ,activemq,rocketMQ使用场景及区别技术选型 吞吐量、topic数量对吞吐量的影响、时效性、可用性、可靠性、核心特点、优劣势总结 activemq:吞吐量万级 非常成熟,功能比较强大,大量的公司再项目中有应用 偶尔会有低概消息丢失,近些年应用越来越少 官方社区维护越来越少,而且确实主要基于解耦和异步来用的,较少在大规模吞吐的场景下使用 rabbitMQ: 吞吐量万级 跟服务器有关系 基于erlang开发,性能较好 延时低,而且提供开源的管理界面 社区比较活跃,近些年互联网公司用rabbitmq的比较多,因为基于erlang语言 不懂源码,比较难进行定制和掌控; rocketMQ:单机吞吐量10w,topic可以达到几百或者上千级别 topic越多吞吐量会有较小幅度的下降,阿里大规模使用,比较可靠、日处理消息上百亿、拓展方便、社区维护可以,只会复杂MQ业务场景 kafka:功能简单,主要支持简单的mq功能,ms级延迟 极高的可用性和可靠性不过有消息重复消费 在大数据领域的实时计算以及日志采集被大规模使用。 中小型公司:rabbitMQ,技术实力一般 挑战不是很高 社区比较活跃; 大型公司:rocketMQ 基础架构研发实力较强 如果是大数据领域的实时计算、日志采集等场景

在 Windows 上安装Rabbit MQ 指南

本小妞迷上赌 提交于 2019-11-30 23:54:25
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License开源协议。采用 Erlang 实现的工业级的消息队列(MQ)服务器。 RabbitMQ的官方站: http://www.rabbitmq.com/ AMQP (高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而不是API(例如JMS),AMQP 客户端能够无视消息的来源任意发送和接受信息。AMQP的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件 (MOM)系统,例如发布/订阅队列,没有作为基本元素实现。反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一 部分,形成了在线路层协议顶端的一个层级:AMQP模型。这个模型统一了消息模式,诸如之前提到的发布/订阅,队列,事务以及流数据,并且添加了额外的特性,例如更易于扩展,基于内容的路由。 AMQP当中有四个概念非常重要 virtual host,虚拟主机 exchange,交换机 queue,队列 binding,绑定 一个虚拟主机持有一组交换机、队列和绑定。 为什么需要多个虚拟主机呢?因为RabbitMQ当中,用户只能在虚拟主机的粒度进行权限控制。因此

Docker - rabbitmq 镜像详解,以及rabbitmq 的运行指令

∥☆過路亽.° 提交于 2019-11-30 22:41:39
文章目录 Docker - rabbitmq 镜像详解,以及rabbitmq 的运行指令 1、rabbitmq 简单说明 2、如何使用rabbitmq 的docker 镜像 3、rabbitmq 的运行内存限制 4、设置基于集群 环境下的 Erlang Cookie 5、rabbitmq 镜像的环境变量列表 1、不带管理界面的镜像 2、带管理界面的镜像 3、共有变量 6、Alpine Linux 镜像 Docker - rabbitmq 镜像详解,以及rabbitmq 的运行指令 1、rabbitmq 简单说明 RabbitMQ是实现高级消息队列协议(AMQP)的开源消息代理软件(有时称为面向消息的中间件)。RabbitMQ服务器是用Erlang编程语言编写的,并建立在Open Telecom Platform框架上,用于集群和故障转移。与代理接口的客户端库适用于所有主要编程语言。 2、如何使用rabbitmq 的docker 镜像 --hostname : rabbitmq 镜像基于节点名称存储数据,而这个节点名称默认为主机的名称,这代表着我们在使用rabbitmq 镜像时,应该尽可能的指定主机的名称,通过 --hostname 来指定。这样我们就跟踪我们的数据,不然docker 会给主机一个随机的名字 进行简单运行 docker run -d --hostname my

openstack-pike-HA环境部署-rabbitmq+memcache

微笑、不失礼 提交于 2019-11-30 22:35:24
1、消息队列(rabbitmq)安装 yum install erlang rabbitmq-server -y 2、启动消息队列服务并且设置开机自启动(rabbitmq三台主机起动) systemctl enable rabbitmq-server systemctl start rabbitmq-server 3、创建rabbitmq用户并且设置权限 rabbitmqctl add_user openstack 123456 rabbitmqctl set_permissions openstack ".*" ".*" ".*" 4、修改配置文集 vim /etc/rabbitmq/rabbitmq-env.conf RABBITMQ_NODE_PORT=5672 ulimit -S -n 4096 RABBITMQ_SERVER_ERL_ARGS="+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]" RABBITMQ_NODE_IP_ADDRESS=10.10.0.2

系统拆分解耦利器之消息队列---RabbitMQ-Configuration

雨燕双飞 提交于 2019-11-30 22:15:12
[一曲广陵不如晨钟暮鼓] 通过前面的一系列文章,我们给大家介绍了RabbitMQ的基本用法。从本文开始,我们将介绍关于RabbitMQ的服务器配置的相关内容,鉴于英语水平比较渣,建议各位看官在学习的时候最好对比官方文档一起看,如果发现不合适的地方,欢迎积极留言! 官方文档:http://www.rabbitmq.com/configure.html#configuration-file -------------------------------------------------------------------------------------------------------------------------------------------------------- RabbitMQ configuration 概述 RabbitMQ本身内置了一份配置信息,并且很大程度上能够很好的满足大多数的应用场景。如果其能够正常运行的,那么你可能就不在需要配置其他任何信息了。 RabbitMQ提供3种通用的方式来满足服务器上个性化的需求: 环境变量(environment variables):默认端口,文件未知,节点名称(或者在shell上进行设置,或者在环境配置文件中配置,rabbitmq-env.conf/rabbitmq-env-conf.bat) 配置文件(a

SpringBoot整合消息中间件RabbitMQ

冷暖自知 提交于 2019-11-30 21:52:58
消息中间件介绍 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性[架构] 使用较多的消息队列有ActiveMQ, RabbitMQ ,ZeroMQ,Kafka,MetaMQ,RocketMQ RabbitMQ :AMQP 协议的领导实现,支持多种场景。淘宝的 MySQL 集群内部有使用它进行通讯,OpenStack 开源云平台 的通信组件,最先在金融行业得到运用。 RabbitMQ的下载安装启动: 因为RabbitMQ是Erlang语言写的索引,需要Erlang的支持,这里也需要下载Erlang 下载地址: Erlang: http://www.erlang.org/downloads RabbitMQ: https://www.rabbitmq.com/download.html 安装方式: 直接下一步即可,注意安装路径不要有中文。 安装管理界面(插件): 进入rabbitMQ安装目录的sbin目录,输入命令 rabbitmq‐plugins enable rabbitmq_management 启动方式: 安装完管理界面后,开始菜单里面会出现以下应用 点击start启动RabbitMQ服务后,输入http://127.0.0.1:15672 看到此页面,启动成功

Spring Boot整合RabbitMQ详细教程

匆匆过客 提交于 2019-11-30 21:45:31
1.首先我们简单了解一下消息中间件的应用场景 异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是必须的,它只是一个通知,而这种做法让客户端等待没有必要等待的东西. (2)并行方式:将注册信息写入数据库后,发送邮件的同时,发送短信,以上三个任务完成后,返回给客户端,并行的方式能提高处理的时间。 假设三个业务节点分别使用50ms,串行方式使用时间150ms,并行使用时间100ms。虽然并性已经提高的处理时间,但是,前面说过,邮件和短信对我正常的使用网站没有任何影响,客户端没有必要等着其发送完成才显示注册成功,英爱是写入数据库后就返回. (3)消息队列 引入消息队列后,把发送邮件,短信不是必须的业务逻辑异步处理 由此可以看出,引入消息队列后,用户的响应时间就等于写入数据库的时间+写入消息队列的时间(可以忽略不计),引入消息队列后处理后,响应时间是串行的3倍,是并行的2倍。 应用解耦 场景:双11是购物狂节,用户下单后,订单系统需要通知库存系统,传统的做法就是订单系统调用库存系统的接口. 这种做法有一个缺点: 当库存系统出现故障时,订单就会失败。 订单系统和库存系统高耦合. 引入消息队列

RabbitMQ安装及使用

只谈情不闲聊 提交于 2019-11-30 21:28:16
下载 由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang。好在RabbitMQ官网已经为我们提供了Erlang的安装包 Erlang下载地址: http://www.rabbitmq.com/releases/erlang/ 本人使用的操作系统为:CentOS7 下载的Erlang安装包为:erlang-19.0.4-1.el7.centos.x86_64.rpm RabbitMQ下载地址: https://www.rabbitmq.com/download.html 下载的RabbitMQ安装包为:rabbitmq-server-3.6.8-1.el7.noarch.rpm 安装 将下载的两个文件上传到/usr/local目录,先安装Erlang yum install erlang- 19.0 .4 - 1. el7 .centos .x 86_64 .rpm 测试Erlang是否安装成功 erl - version 出现以下信息则表示安装成功:Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 8.0.3 安装RabbitMQ yum install rabbitmq-server- 3.6 .8 - 1. el7 .noarch .rpm 运行RabbitMQ

RabbitMQ从入门到精通

左心房为你撑大大i 提交于 2019-11-30 21:27:57
文章目录 Linux 部署运维 1.安装erlang 2.安装socat 3.安装rabbit MQ 4.查看rabbitmq状态 5.rabbitmq启动 6.rabbitmq的管理界面 7.rabbitmq停止 8.rabbitmq关闭 9.rabbitmq重启 10.配置文件位于/etc/rabbitmq 11.用户管理 12.集群 Client Demo-HelloWorld (JAVA) 1.Create Maven Project And Import Rabbit MQ amqp-client 2.Create Send Class 3.Create Receive Class Client Demo-HelloWorld(SpringBoot) 1.Use Spring Initializr And Add RabbitMQ Dependency 2.配置 application.yml 3.编写启动类 4.编写Sender 5.编写Receiver 6.编写Amqp配置类 Exchanges 交换机类型 direct topic headers fanout 匿名队列 绑定 Code Notice 报错 connection Refuse 报错reply-code=406, reply-text=PRECONDITION_FAILED 安利 HTML网页版观看 ,

RabbitMQ 从入门到精通 (一)

ぃ、小莉子 提交于 2019-11-30 21:27:45
目录 初识RabbitMQ AMQP 3.RabbitMQ的极速入门 Exchange(交换机)详解 4.1 Direct Exchange 4.2 Topic Exchange 4.3 Fanout Exchange Message 消息 初识RabbitMQ RabbitMQ 是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用 Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的 RabbitMQ的优点: 开源、性能优秀、稳定性保障 提供可靠性消息投递模式(confirm)、返回模式(return) 与SpringAMQP完美的整合、API丰富 集群模式丰富,表达式配置,HA模式,镜像队列模型 保证数据不丢失的前提下做到高可靠性、可用性 RabbitMQ官网 RabbitMQ的整体架构: RabbitMQ的消息流转: AMQP AMQP全称: Advanced Message Queuing Protocol AMQP翻译: 高级消息队列协议 AMQP定义: 是具有现代特征的二进制协议。是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计 AMQP核心概念: Server:又称Broker,接受客户端的连接,实现AMQP实体服务 Connection:连接