




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RabbitMQ 高效部署分布式 消息队列 PPT模板下载 1 添加目录 Entet 第一章 第二章 第三章 第五章 第四章 RabbitMQ原理分析 RabbitMQ部署与基础操作 RabbitMQ简介 RabbitMQ优势 RabbitMQ分布式与高可用 2 2020 4 16 RabbitMQ简介 RabbitMQ是流行的开源消息队列系统 用erlang语言开发 RabbitMQ是AMQP 高级消息队列协议 的标准实现 最初起源于金融系统 用于在分布式系统中存储转发消息 在易用性 扩展性 高可用性等方面表现不俗 RabbitMQ中有几个重要概念 虚拟主机 virtualhost 交换机 exchange 路由键 RoutingKey 队列 queue 绑定 binding 通道 channel 消费者 consumer 生产者 producer 3 2020 4 16 1 Exchange 消息交换机 它指定消息按什么规则 路由到哪个队列 2 Queue 消息队列载体 每个消息都会被投入到一个或多个队列 3 Binding 绑定 它的作用就是把exchange和queue按照路由规则绑定起来 4 RoutingKey 路由关键字 exchange根据这个关键字进行消息投递 5 vhost 虚拟主机 一个broker里可以开设多个vhost 用作不同用户的权限分离 6 producer 消息生产者 就是投递消息的程序 7 consumer 消息消费者 就是接受消息的程序 8 channel 消息通道 在客户端的每个连接里 可建立多个channel 每个channel代表一个会话任务 4 2020 4 16 1 客户端连接到消息队列服务器 打开一个channel 2 客户端声明一个exchange 并设置相关属性 3 客户端声明一个queue 并设置相关属性 4 客户端使用routingkey 在exchange和queue之间建立好绑定关系 5 客户端投递消息到exchange exchange接收到消息后 就根据消息的key和已经设置的binding 进行消息路由 将消息投递到一个或多个队列里 消息队列的使用过程大概如下 5 2020 4 16 RabbitMQ结构图如下 6 2020 4 16 RabbitMQ支持消息的持久化 也就是数据写在磁盘上 为了数据安全考虑 我想大多数用户都会选择持久化 消息队列持久化包括3个部分 1 exchange持久化 在声明时指定durable 1 2 queue持久化 在声明时指定durable 1 3 消息持久化 在投递时指定delivery mode 2 1是非持久化 如果exchange和queue都是持久化的 那么它们之间的binding也是持久化的 如果exchange和queue两者之间有一个持久化 一个非持久化 就不允许建立绑定 消息持久化 7 2020 4 16 RabbitMQ原理分析 谈到RabbitMQ 首先要谈到MQ和AMQP MQ全称为MessageQueue 消息队列 MQ 是一种应用程序对应用程序的通信方法 应用程序通过写和检索出入列队的针对应用程序的数据 消息 来通信 而无需用专用连接来链接它们 8 2020 4 16 AMQP AdvancedMessageQueuingProtocol 高级消息队列协议 是应用层协议的一个开放标准 为面向消息的中间件设计 AMQP的主要特征是面向消息 队列 路由 包括点对点和发布 订阅 可靠性 安全性要求很严格 AMQP允许来自不同供应商的消息生产者和消费者实现真正的互操作扩展 就如同SMTP HTTP FTP等协议采用的方式一样 而此前对于消息中间件的标准化努力则集中在API层面上 比如JMS 且没有提供互操作性的途径 不同于JMS的仅仅定义API AMQP是一个线路级的协议 它描述了通过网络传输的字节流的数据格式 因此 遵从这个协议的任何语言编写的工具均可以操作AMQP消息 9 2020 4 16 RabbitMQ部署与基本操作 一 RabbitMQ环境安装 1 安装Erlangrpm ivherlang 18 1 1 el6 x86 64 rpm2 安装RabbitMQrpm ivhrabbitmq server 3 5 6 1 noarch rpm3 开放端口5672Iptables AINPUT ptcp dport5672 jACCEPT 10 2020 4 16 二 环境配置 rabbitmq management一般情况下 RabbitMQ的默认配置就足够了 如果希望特殊设置的话 需要手动创建 配置文件分别为 环境变量配置文件rabbitmq env conf配置信息配置文件rabbitmq config环境变量初始值通过文件rabbitmq env conf来配置 rabbitmq env conf默认位置在 etc rabbitmq 且位置不可更改 rabbitmq env conf中的每项都以RABBITMQ 为前缀 常用参数如下 11 2020 4 16 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 插件所在路径 12 2020 4 16 在环境变量配置文件即rabbitmq env conf中通过RABBITMQ CONFIG FILE指定的文件加后缀 config 一般取名为rabbitmq config 该文件是标准的Erlang配置文件 rabbitmq config文件中每个参数为一个Erlangtuple 结构为 Key Value Key为atom类型 Value为一个term 其中几个关键参数为 tcp listerners 设置rabbimq的监听端口 默认为 5672 disk free limit 磁盘低水位线 若磁盘容量低于指定值则停止接收数据 默认值为 mem relative 1 0 即与内存相关联1 1 也可定制为多少byte 13 2020 4 16 vm memory high watermark 设置内存低水位线 若低于该水位线 则开启流控机制 默认值是0 4 即内存总量的40 hipe compile 将部分rabbimq代码用HighPerformanceErlangcompiler编译 可提升性能 该参数是实验性 若出现erlangvmsegfaults 应关掉 force fine statistics 该参数属于rabbimq management 若为true则进行精细化的统计 但会影响性能 frame max 包大小 若包小则低延迟 若包则高吞吐 默认是131072 128K heartbeat 客户端与服务端心跳间隔 设置为0则关闭心跳 默认是600秒 14 2020 4 16 三 安装插件并启动 启用插件 rabbitmq pluginsenablerabbitmq managementguest这个默认的用户只能通过http localhost 15672来登录 其他的IP无法直接使用这个账号 如果要远程通过Web控制台管理RabbitMQ需要进行如下的配置 新增用户 rabbitmqctladd user username password 设置用户角色 rabbitmqctlset user tags username administrato编辑 etc rabbitmq rabbitmq config添加如下配置信息 rabbit tcp listeners 5672 loopback users username 启动RabbitMQ服务rabbitmq server detached 15 2020 4 16 RabbitMQ集群部署 一 为集群中所有服务器安装Erlang和RabbitMQ 二 同步所有服务器时间 三 修改 etc hosts文件 加入集群所有节点描述 192 168 1 1node1192 168 1 2node2192 168 1 3node3四 设置ErlangCookie ErlangCookie文件 var lib rabbitmq erlang cookie 将node1的该文件复制到node2 node3等集群 五 使用 detached参数启动各节点RabbitMQ 16 2020 4 16 六 组成集群将node2 node3与node1组成集群 node2 rabbitmqctlstop appnode2 rabbitmqctljoin clusterrabbit node1node2 rabbitmqctlstart app此时node2与node3也会自动建立连接 现在node2 node3均为磁盘节点 如果要使用内存节点 则可以使用如下命令加入集群 node2 rabbitmqctljoin cluster ramrabbit node1集群配置好后 可以在RabbitMQ任意节点上执行如下命令来查看是否集群配置成功 rabbitmqctlcluster status 17 2020 4 16 七 设置镜像队列策略 在任意一个节点上执行 rabbitmqctlset policy pvhostpathnam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东南亚跨境电商市场消费者购物决策因素与市场趋势研究报告
- 导游安全知识培训方案课件
- 2025北京海淀区高三二模化学试题及答案
- 安全培训目的和要求课件
- 浮力物理题库及答案
- 工程施工结转方案(3篇)
- 2025年机械电工证考试试题及答案
- 安全培训的风险评估表格课件
- 寒号鸟的完美课件
- 教科版2025年一年级下册科学全册教案
- 《磁控溅射工艺简介》课件
- 无人机飞行安全应急预案
- 工程意向定金合同范例
- 汽车智能制造技术课件
- 2024-2025学年中职历史世界历史高教版(2023)教学设计合集
- 辽宁省沈阳市第一三四中学2024-2025学年七年级上学期第一次月考英语试卷
- 高企认定研发项目及科技成果转化专题培训
- 大学低值耐用品和易耗品管理办法
- 基本公共卫生健康教育服务村医培训课件
- 【完整打印版】教科版小学科学四年级上册教案(表格)
- 中医医疗技术手册2013普及版汇编
评论
0/150
提交评论