




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RabbitMQ应用实践,易车二手车杨伟,目录,Rabbitmq介绍应用实践运维实践,第一部分:Rabbitmq介绍,开源AMQP实现,Erlang语言编写,支持多种客户端分布式、高可用、持久化、可靠、安全支持多协议:AMQP、STOMP、MQTT、HTTPRabbitmq主要概念对象:生产者、消费者、交换机、队列业务解耦:解决多系统、异构系统间的数据交换,解耦生产者和消费者适用场景:批量数据异步处理、并行任务串行化、高负载任务负载均衡,简要介绍,AMQP工作原理,AMQP,即AdvancedMessageQueuingProtocol,高级消息队列协议,几个核心概念,颗粒度:Broker:消息队列服务器实体vhost:虚拟主机,一个broker里可以开设多个vhostExchange:消息交换机Queue:消息队列载体消息流转:Binding:绑定,根据路由规则绑定exchange和queueRoutingKey:路由关键字Connection:连接channel:消息通道,每个连接可建立多个channel关联对象producer:消息生产者consumer:消息消费者,交换机类型,DirectExchange完全匹配的路由TopicExchange模式匹配路由FanoutExchange广播模式Headersexchange键值对匹配路由,可靠性机制,Messageacknowledgment:消息回执应答机制下:收到回执才删除消息;未收到回执而连接断开,消息会转给其他消费者应答机制下:忘记回执会导致消息堆积,业务重复处理采用非应答机制可以提升队列处理效率Messagedurability:消息持久化可以避免绝大部分的消息丢失,如服务重启采用非持久化机制可以提升队列处理效率Prefetchcount:每次发送给消费者消息数量,默认1,实践采用2,第二部分:部分应用实践,复用connection、复用channel如果需要可靠业务,需要支持持久化和ack机制两台虚拟机集群,QPS5000次/秒如果希望高吞吐,可以采取非持久化、noack、自动删除机制两台虚拟机集群测试,QPS20k次/秒稳定性保障:生产者异常保障消费者异常保障,代码实现需注意细节,生产者面对exchange,消费者面对queue;一个queue只有一个消费者(可多个副本)进行处理;命名规划:exchange:ex_bizobj_usecase,其中:ex为前缀,bizobj为业务对象(如Car、Dealer),usecase为某个业务场景,示例:ex_car_promotion;routekey:对应于event(事件,某个业务动作),如:置顶(settop)、刷新(refresh)queue:为方便使用,建议对应于event(采用exchange+event),如:qu_bizobj_usecase_event,其中:ex为前缀,bizobj为业务对象(如Car、Dealer),usecase为某个业务场景,示例:qu_car_promotion_settop;串行或并行的业务方案:并行方案:一个事件发生后,多个消费者相互间没有依赖关系,可由exchange分发消息到多个队列,由各队列的消费者并行进行处理;串行方案:一个事件发生后,多个消费间有先后依赖关系,可以有先执行的消费者处理事件,处理完成后再次发送消息(此时为另外一个event)到exchange,由后续的队列进行处理。,规划,根据不同的业务颗粒度规划virtualhost规划:按平台或系统规划Exchange规划:按系统规划队列规划:按模块规划MQ消费规划:按模块规划,规划,案例:新车源营销,案例:新车源营销,车源营销置顶:置顶冻结费用、更新索引曝光判断计费精准:精准更新索引点击判断计费刷新:刷新更新索引、计费发车:发车计费、自动审核更新索引,案例:ELK日志平台,案例:ELK日志平台,案例:通知服务,案例:通知服务,第三部分:部分运维实践,运维实践,安装配置:服务器配置集群配置高可用集群配置监控,安装Erlang环境、安装RabbitMQ启动rabbitmq,并验证启动情况:rabbitmq-server-detached&psaux|greprabbitmq如果启用了防火墙的话,开启相关端口4369(epmd),25672(Erlangdistribution)5672,5671(AMQP0-9-1withoutandwithTLS)15672(ifmanagementpluginisenabled)启用web界面的监控插件:rabbitmq-pluginsenablerabbitmq_management登录账号密码默认都是guest添加用户rabbitmqctladd_userrabbitmq123456,安装,两个配置文件:环境变量的配置文件rabbitmq-env.conf设置rabbitmq的数据存储位置RABBITMQ_MNESIA_BASE=/data/rabbitmq/data设置rabbitmq的日志存储位置RABBITMQ_LOG_BASE=/data/rabbitmq/log配置信息文件rabbitmq.config内存阀值,超过时启动GCvm_memory_high_watermark,0.6内存阀值,超过阀值时内存数据写到磁盘vm_memory_high_watermark_paging_ratio,0.5脑裂问题的修复方式:ignore,autoheal,pause_minoritycluster_partition_handling,autoheal自动加载broker信息rabbitmq_management,load_definitions,/etc/rabbitmq/rabbitmq_broker.json,配置:服务配置,日志切分:编写shell文件:/opt/scripts/rabbitmq_split_log.sh定时执行执行crontabe,加入定时任务,配置:服务配置,修改hostname:修改/etc/sysconfig/network设置.erlang.cookie,基于Erlang的集群来实现cd/var/lib/rabbitmq/echo-nPXXXXEWPXODAMMALGXXXX.erlang.cookie打开端口:25672,4369加入集群:sudorabbitmqctljoin_cluster-ramrabbitrabbitmq199检查集群状态:rabbitmqctlcluster_status设置镜像队列策略从集群中分离在任一节点执行:rabbitmqctlforget_cluster_noderabbitrabbit1在分离节点执行:rabbitmqctlreset,配置:集群配置,Rabbitmq集群监控,Rabbitmq集群监控,配置:高可用集群配置,基于Haproxy+keepalived+rabbitmq实现集群,Haproxy配置Haproxy日志配置安装rsyslog添加haproxy的log配置:vim/etc/rsyslog.d/haproxy.conf编辑/etc/sysconfig/rsyslog创建日志文件并授权touchhaproxy.log配置防火墙端口:9188用于haproxy的监控界面5670用于rabbimq的负载均衡端口配置haproxy:/etc/haproxy/haproxy.cfg注意:因为要使用tcp的负载,屏蔽掉与http相关的默认配置启动haproxyhaproxy-f/etc/haproxy/haproxy.cfg停止haproxykillallhaproxy,配置:高可用集群配置,Keepalived配置VRRP:虚拟路由冗余协议(VirtualRouterRedundancyProtocol)配置文件位置:/etc/keepalived/keepalived.conf配置keepalived#因为当前环境中VRRP组播有问题,改为使用单播发送VRRP报文unicast_src_ip00unicast_peer99启动服务:顺序启动启动haproxy:haproxy-f/etc/haproxy/haproxy.cfg启动keeepalived:先启动master节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省阜阳市颍州区2022-2023学年高三下学期高考第三次模拟考试思想政治试题及答案
- 2025 年小升初上海市初一新生分班考试语文试卷(带答案解析)-(部编版)
- 2025聘用合同简易样本
- 湖南省长沙市雅礼雨花中学2024-2025学年八年级下学期期末考试数学试题(含部分答案)
- 2025年吉林省吉林市中考物理一模试卷-自定义类型(含答案)
- 维修汽车服务合同范本
- 瑞士租车服务合同范本
- 铺面租房合同范本
- 特许代理销售合同范本
- 购买金戒指合同范本
- 2025年高考真题语文全国一卷试题试卷及参考答案
- 2025年反假币知识竞赛题库及答案
- 2024-2025学年人教版八年级数学下册期末测试卷(含解析)
- 媒体行业工作经验及成果展示证明(5篇)
- 购买电钢琴合同协议书
- 公司代收代付协议书
- 《UPS电源系统培训教程》课件
- 2025-2030全球及中国ITSM工具行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 心血管疾病急救知识课件
- 高一新生入学教育
- 医院培训课件:《十八项核心医疗制度解读》
评论
0/150
提交评论