




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Rabbit MQ高效部署分布式 消息队列PPT模板下载: 行业PPT模板: 节日PPT模板: PPT素材下载: PPT图表下载: 优秀PPT下载: PPT教程: Word教程: Excel教程: 资料下载: PPT课件下载: 范文下载: 试卷下载: 教案下载: 添加目录EntetRabbit MQ 原理分析Rabbit MQ 部署与基础操作Rabbit MQ 简介Rabbit MQ 优势Rabbit MQ 分布式与高可用Rabbit MQ 简介 Rabbit MQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。最初起源于金融系统,用
2、于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 Rabbit MQ中有几个重要概念:虚拟主机(virtual host),交换机(exchange ),路由键( Routing Key ),队列(queue),绑定(binding),通道(channel),消费者(consumer),生产者(producer)。1. Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。2. Queue:消息队列载体,每个消息都会被投入到一个或多个队列。3. Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。4. Routing Ke
3、y:路由关键字,exchange根据这个关键字进行消息投递。5. vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。6. producer:消息生产者,就是投递消息的程序。7. consumer:消息消费者,就是接受消息的程序。8. channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。(1)客户端连接到消息队列服务器,打开一个channel。(2)客户端声明一个exchange,并设置相关属性。(3)客户端声明一个queue,并设置相关属性。(4)客户端使用routing key,在exchange
4、和queue之间建立好绑定关系。(5)客户端投递消息到exchange。 exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里。消息队列的使用过程大概如下: Rabbit MQ 结构图如下: RabbitMQ支持消息的持久化,也就是数据写在磁盘上,为了数据安全考虑,我想大多数用户都会选择持久化。消息队列持久化包括3个部分:(1)exchange持久化,在声明时指定durable = 1(2)queue持久化,在声明时指定durable = 1(3)消息持久化,在投递时指定delivery_mode = 2(1是非持久化) 如果e
5、xchange和queue都是持久化的,那么它们之间的binding也是持久化的。如果exchange和queue两者之间有一个持久化,一个非持久化,就不允许建立绑定。消息持久化:Rabbit MQ 原理分析 谈到RabbitMQ,首先要谈到MQ和AMQP。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需用专用连接来链接它们。AMQP:Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP
6、的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全性要求很严格。 AMQP允许来自不同供应商的消息生产者和消费者实现真正的互操作扩展,就如同SMTP、HTTP、FTP等协议采用的方式一样。而此前对于消息中间件的标准化努力则集中在API层面上(比如JMS),且没有提供互操作性的途径。不同于JMS的仅仅定义API,AMQP是一个线路级的协议它描述了通过网络传输的字节流的数据格式。因此,遵从这个协议的任何语言编写的工具均可以操作AMQP消息。Rabbit MQ部署与基本操作一、Rabbit MQ环境安装:1、安装Erlang rpm ivh erlang-18.1-1.el6.
7、x86_64.rpm2、安装RabbitMQrpm ivh rabbitmq-server-3.5.6-1.noarch.rpm3、开放端口5672 Iptables -A INPUT -p tcp -dport 5672 -j ACCEPT二、环境配置:rabbitmq_management一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,需要手动创建,配置文件分别为:环境变量配置文件 rabbitmq-env.conf配置信息配置文件 rabbitmq.config环境变量初始值通过文件rabbitmq-env.conf来配置,rabbitmq-env.conf默认位置
8、在/etc/rabbitmq,且位置不可更改。rabbitmq-env.conf中的每项都以 RABBITMQ_为前缀,常用参数如下:RABBITMQ_NODE_IP_ADDRESS=/IP地址,空串bind所有地址,指定地址bind指定网络接口RABBITMQ_NODE_PORT=/TCP端口号,默认是5672RABBITMQ_NODENAME=/节点名称。默认是rabbitRABBITMQ_CONFIG_FILE=/配置文件路径RABBITMQ_MNESIA_BASE=/mnesia所在路径RABBITMQ_LOG_BASE=/日志所在路径RABBITMQ_PLUGINS_DIR=/插件所
9、在路径在环境变量配置文件即rabbitmq-env.conf中通过RABBITMQ_CONFIG_FILE指定的文件加后缀.config。一般取名为rabbitmq.config,该文件是标准的Erlang配置文件,rabbitmq.config文件中每个参数为一个Erlang tuple,结构为Key,Value, Key为atom类型, Value为一个term,其中几个关键参数为:tcp_listerners:设置rabbimq的监听端口,默认为5672。disk_free_limit:磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为mem_relative, 1.0,即与内存
10、相关联1:1,也可定制为多少byte。vm_memory_high_watermark:设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。hipe_compile:将部分rabbimq代码用High Performance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。force_fine_statistics:该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。frame_max:包大小,若包小则低延迟,若包则高吞吐,默认是131072=128
11、K。heartbeat:客户端与服务端心跳间隔,设置为0则关闭心跳,默认是600秒。三、安装插件并启动: 启用插件:rabbitmq-plugins enable rabbitmq_management guest这个默认的用户只能通过http:/localhost:15672 来登录,其他的IP无法直接使用这个账号;如果要远程通过Web控制台管理Rabbit MQ需要进行如下的配置:a) 新增用户:rabbitmqctl add_userusernamepasswordb) 设置用户角色:rabbitmqctl set_user_tags username administratoc) 编辑
12、 /etc/rabbitmq/rabbitmq.config 添加如下配置信息:rabbit, tcp_listeners, 5672, loopback_users, usernamed) 启动RabbitMQ服务 rabbitmq-server -detachedRabbit MQ 集群部署一、为集群中所有服务器安装Erlang和RabbitMQ。二、同步所有服务器时间。三、修改/etc/hosts文件,加入集群所有节点描述: node1 node2 node3四、设置Erlang Cookie:Erlang Cook
13、ie 文件:/var/lib/rabbitmq/.erlang.cookie。将 node1 的该文件复制到 node2、node3等集群。五、使用-detached参数启动各节点RabbitMQ。六、组成集群将 node2、node3 与 node1 组成集群: node2 # rabbitmqctl stop_appnode2 # rabbitmqctl join_cluster rabbitnode1node2 # rabbitmqctl start_app此时 node2 与 node3 也会自动建立连接;现在node2、node3均为磁盘节点,如果要使用内存节点,则可以使用如下命令加入集群:node2 # rabbitmqctl join_cluster -ram rabbitnode1 集群配置好后,可以在 RabbitMQ 任意节点上执行如下命令来查看是否集群配置成功。 rabbitmqctl cluster_status 七、设置镜像队
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教宁夏 九年级 下册 语文 第五单元《 天下第一楼(节选)》习题课 课件
- 2025年部编版新改版语文一年级下册第三、第四次月考试题附答案(各一套)
- 2025年部编版新教材语文一年级下册第三次月考试题及答案(二)
- 新人教版高中语文必修2在马克斯墓前的讲话 同步练习基础题
- 冷柜出售合同范例
- 以桥为线+时空链接住宅大区项目景观方案设计
- 二手房尾款支付合同范例
- 劳动合同范例 银川
- cctv检测合同范例
- 借条可以转让合同范例
- 人力资源购销合同范本
- 《骑鹅旅行记》名著阅读读课件
- 2025年工程策划勘察设计合作框架协议书
- 2025年安徽淮北市淮海实业集团招聘笔试参考题库含答案解析
- GB/T 31771-2024家政服务母婴护理服务质量规范
- 采购管理实务全套教学课件
- 大学语文《西厢记》PPT课件
- 丽声北极星分级绘本第三级下 The Class Trip 课件
- 放射性元素的衰变
- 高英Lesson3 Pub Talk and the King27s English
- 气柜培训(课堂PPT)
评论
0/150
提交评论