rabbitmq集群

五、常用命令

≡放荡痞女 提交于 2019-12-14 23:54:59
启动 /usr/local/rabbitmq/sbin/rabbitmq-server & 启用插件 /usr/local/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management /usr/local/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_mqtt 查看用户 rabbitmqctl list_users 删除guest用户 rabbitmqctl delete_user guest 添加用户 rabbitmqctl add_user admin admin 设置用户角色 rabbitmqctl set_user_tags admin administrator 添加vhosts rabbitmqctl add_vhost test 查看vhost rabbitmqctl list_vhosts 用户授权 rabbitmqctl set_permissions -p test admin ".*" ".*" ".*" 设置镜像队列(集群) rabbitmqctl set_policy -p test ha-all "^" '{"ha-mode":"all"}' 更多命令详见:rabbitmqctl --help 来源: CSDN 作者: 大河院开心鸭 链接: https

linux安装RabbitMQ教程

佐手、 提交于 2019-12-14 12:08:53
RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用。 一、erlang安装   RabbitMQ是使用Erlang开发,所以安装RabbitMQ前需要先安装Erlang。 1.下载源文件 wget http://erlang.org/download/otp_src_17.0.tar.gz 2.编译安装Erlang 编译安装Erlang对环境有要求,为防止在编译的时候提示某些软件包未安装之类的错误,所以我将Erlang需要的软件提前安装,直接使用yum进行安装即可 yum -y install make ncurses-devel gcc gcc-c++ unixODBC unixODBC-devel openssl openssl-devel kernel-devel 3.解压 tar -zxvf otp_src_17.0.tar.gz 4. 编译配置Erlang ./configure --prefix=/usr/local/erlang --enable-smp-support --enable-threads --enable-sctp

Centos7 安装rabbitmq

╄→尐↘猪︶ㄣ 提交于 2019-12-13 06:43:34
一、RabbitMQ简单介绍 RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 在目前分布式的大环境下,成为非常常用的消息队列,以下详细说明怎么在centos7 上安装部署rabbitmq,并列举简单的维护,方便运维同学能更好的维护rabbitmq的正常运行。由于一般生产环境,不管是erlang还是 rabbitmq都不能随便进行版本升级,每次升级都是要谨慎的,所以这里推荐都使用源码安装,这样就固定了版本,不会出现通过yum安装的话,不小心升级了版本导致服务故障等的问题。当然yum安装会更简单,这里就不做介绍,有兴趣的参考官方文档即可。 二、Centos7下安装rabbitmq rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/ wget http://erlang.org/download/otp_src_21.1.tar.gz

rabbitmq常见面试题

橙三吉。 提交于 2019-12-13 02:21:55
1、使用RabbitMQ有什么好处? 1.解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 2.异步,将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 3.削峰,并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常 2、RabbitMQ 中的 broker 是指什么?cluster 又是指什么? broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。 3、RabbitMQ 概念里的 channel、exchange 和 queue 是逻辑概念,还是对应着进程实体?分别起什么作用? queue 具有自己的 erlang 进程;exchange 内部实现为保存 binding 关系的查找表;channel 是实际进行路由工作的实体,即负责按照 routing_key 将 message 投递给 queue 。由 AMQP 协议描述可知,channel 是真实 TCP 连接之上的虚拟连接,所有 AMQP 命令都是通过 channel 发送的,且每一个 channel 有唯一的 ID。一个 channel 只能被单独一个操作系统线程使用,故投递到特定

RabbitMQ 命令行的基本操作

一世执手 提交于 2019-12-11 23:19:51
深入理解AMQP协议: https://blog.csdn.net/weixin_37641832/article/details/83270778 虚拟主机 每个Rabbit都能创建很多vhost,我们称之为虚拟主机,每个虚拟主机其实都是mini版的RabbitMQ,拥有自己的队列,交换器和绑定,拥有自己的权限机制。 vhost特性: RabbitMQ默认的vhost是“/”开箱即用; 多个vhost是隔离的,多个vhost无法通讯,并且不用担心命名冲突(队列和交换器和绑定),实现了多层分离; 创建用户的时候必须指定vhost; 列出所以虚拟主机: rabbitmqctl list_vhosts 列出虚拟主机上的所有权限: rabbitmqctl list_permissions -p [vhost_name] 创建虚拟主机: rabbitmqctl add_vhost [vhost_name] 删除虚拟主机: rabbitmqctl delete_vhost [vhost_name] 用户管理 添加用户: rabbitmqctl add_user username password 列出所有用户: rabbitmqctl list_users 删除用户: rabbitmqctl delete_user username 清除用户权限: rabbitmqctl clear

spring中使用RabbitMQ

时光怂恿深爱的人放手 提交于 2019-12-11 18:41:58
常见的消息中间件产品: (1)ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。 (2)RabbitMQ AMQP协议的领导实现,支持多种场景。淘宝的MySQL集群内部有使用它进行通讯,OpenStack开源云平台的通信组件,最先在金融行业得到运用。我们在本次课程中介绍 RabbitMQ的使用。 (3)ZeroMQ 史上最快的消息队列系统 (4)Kafka Apache下的一个子项目 。特点:高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。适合处理海量数据。 (5)RocketMQ 阿里巴巴 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行 分布式系统 的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)。 消息队列中间件是分布式系统中重要的组件,主要解决 应用解耦,异步消息,流量削锋等 问题,实现高性能,高可用,可伸缩和最终一致性架构。 ​ Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协议的具体实现,也是目前的唯一实现

RabbitMQ 集群部署

对着背影说爱祢 提交于 2019-12-11 10:15:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> RabbitMQ 元数据 RabbitMQ 元数据类型 RabbitMQ 会始终记录以下类型的内部元数据: * 队列元数据 --- 队列名称和它们的属性(是否可持久化,是否自动删除) * 交换器元数据 --- 交换器名称,类型,属性(可持久化等) * 绑定元数据 --- 一张简单的表格展示如何将消息路由到队列 * vhost 元数据 --- 为 vhost 内的队列,交换器和绑定提供命名空间和安全属性 * 用户和用户权限信息元数据 单节点元数据存储 RabbitMQ 会将所有的这些信息存储在内存中,同步将标记为可持久化的队列和交换器存储到硬盘上,从而确保队列和交换器在重启服务 的时候可以重建 集群环境元存储 集群环境引入了新的元数据:集群节点位置,以及节点与已记录的其他类型元数据的关系,集群也提供了选择,将元数据存储到磁盘(独立节 点的默认配置)或者 RAM 中 集群中运行的任何一个节点,都拥有集群的全部元数据 集群中声明队列,交换器,绑定的时候,这些操作需要等到所有集群节点都成功提交元数据变更,才会返回 内存节点和磁盘节点 RabbitMQ 中的节点按存储方式分为两类: * 内存节点: 所有的元数据定义仅存储在内存中(不包含消息内容,消息索引,队列索引,其他节点状态),在频繁变更队列,交换器,绑定 的情况下

rabbitMQ消息队列

放肆的年华 提交于 2019-12-10 18:02:19
一、MQ简介 在介绍RabbitMQ之前实现要介绍一下MQ,MQ是什么? MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递。 RabbitMQ是一个实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用Erlang语言的。 二、使用场景 在我们秒杀抢购商品的时候,系统会提醒我们稍等排队中,而不是像几年前一样页面卡死或报错给用户。 像这种排队结算就用到了消息队列机制,放入通道里面一个一个结算处理,而不是某个时间断突然涌入大批量的查询新增把数据库给搞宕机,所以RabbitMQ本质上起到的作用就是削峰填谷,为业务保驾护航。 三、为什么选择RabbitMQ 现在的市面上有很多MQ可以选择,比如ActiveMQ、ZeroMQ、Appche Qpid,那问题来了为什么要选择RabbitMQ? 除了Qpid,RabbitMQ是唯一一个实现了AMQP标准的消息服务器; 可靠性,RabbitMQ的持久化支持,保证了消息的稳定性; 高并发,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开发的语言,天生自带高并发光环,和高可用特性; 集群部署简单,正是应为Erlang使得RabbitMQ集群部署变的超级简单; 社区活跃度高,根据网上资料来看,RabbitMQ也是首选

rabbitmq集群安装实践

末鹿安然 提交于 2019-12-10 09:23:43
因为业务需求,需要使用到rabbitmq,使用的话肯定是集群模式了,从网上找了很多攻略,好像很多都不可行,最后参考官网的安装步骤,加上自己的时间顺利完成。 创建好集群让运维做HA就可以使用了。 一、安装rabbitmq命令(推荐yum安装) #安装erlang yun install erlang 安装epel #su -c 'rpm -Uvh http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm ' get http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -ivh epel-release-6-8.noarch.rpm #导入key: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 #安装yum仓库 yum install yum-priorities #rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc rpm --import

RabbitMQ学习(二):RabbitMQ的基本概念

末鹿安然 提交于 2019-12-09 22:38:58
RabbitMQ相关概念 RabbitMQ是一个Erlang开发的AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的开源实现。是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在。 主要特征 可靠性:持久化、传输确认、发布确认等机制来保证可靠性。 扩展性:支持动态扩展集群中的节点 高可用:队列可在集群中设置镜像,部分节点出现问题仍然可用 多协议:AMQP协议、STOMP、MOTT等多种消息中间件协议 多语言:java、Python、Ruby、PHP、C#、JavaScript、Go、Object-C等 支持插件:如web管理端。 消息队列有三个基本概念: 发送方、消息队列、消费方。RabbitMQ 在这个基本概念之上, 多做了一层抽象, 在发消息者和队列之间, 加入了交换器 (Exchange)。这样发消息者和消息队列就没有直接联系,转而变成发消息者把消息发给交换器,交换器根据调度策略再把消息转发给消息队列。消息生产者并没有直接将消息发送给消息队列,而是通过建立与Exchange的Channel,将消息发送给Exchange。Exchange根据路由规则,将消息转发给指定的消息队列。消息队列储存消息,等待消费者取出消息。消费者通过建立与消息队列相连的Channel