




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、消息队列实施方案1、背景异步解耦合、给前端系统提供最高效的反响2、常见消息队列比照2、1 ActiveMqActiveMQ 是一个完全支持 JMS1.1和J2EE 1.4规的 JMS Provider实现优点:Java语言支持集群模式缺点:性能在消息中间件中处于下游2、2 RabbitmqRabbitmq 是基于 AMQP使用erlang语言实现的消息队列系统优点:1、完整的消息队列系统,支持多种消息队列模式,包括竞争消费;2、支持集群模式,扩展集群容量和性能比拟方便,集成了集群的监控和管理;3、支持消息的持久化;缺点:1、需要学习比拟复杂的接口和协议,比拟消耗时间;2、 性能不是特别理想大概
2、在1wqps左右;3、使用Erlang语言,语言根底;2、3 KafkaKafka是LinkedIn开发的一个高性能、分布式的消息发布订阅系统。优点:1、分布式集群可以透明的扩展,增加新的效劳器进集群。2、高性能。单机写入 TPS约在百万条/秒3、容错。数据都会复制到几台效劳器上。缺点:1、复杂性。Kafka需要zookeeper集群的支持,Topic通常需要人工来创立,部署和 维护较一般消息队列本钱更高定位于日志传输、存在消息丧失的肯能、消息乱序3、消息发送错误无重试2、4 RocketMQRockerMq是阿里公司中间件团队参考Kafka思想,用Java语言实现的消息传输系统优点:1较高性
3、能,单机写入 TPS单实例约7万条/秒2、容错,多种集群模式、可以解决容错问题3、消息重试发送4、顺序消息可以严格执行缺点:1消息重复、消费端需要做去重操作2、5选用结论从工程业务与团队技术偏向考虑,我们应该需要一种数据平安性比拟高,保证每个消息都会被执行;有容错机制、支持集群模式高可用;性能不错,可以在毫秒级处理消息;支持顺序 消息的消息中间件, RockerMq可以满足这些要求。3、RockerMq 简介3、1 RockerMq产品介绍参考阿里公司提供的RocketMQ开发指南”,最新版针对 v3.2.43、2 RockerMq 集群3、2、1部署方式Rockermq共有四种部署方式,分别
4、是:1、单个 Master一旦Broker重启或者宕机时,会导致整个效劳不可用2、 多 Master模式一个集群无 Slave,全是 Master,例如 2个 Master戒者 3个 Master 优点:1、配置简单,2、 容错,单个 Master宕机或重启维护对应用无影响,在磁盘配置为RAID10时,即使机器宕机不可恢复情况下,由于RAID10磁盘非常可靠,在同步刷盘时消息不会丢,异步刷盘丧失少量消息,3、性能最高。3、多 Master多Slave模式,异步复制每个 Master配置一个或多个 Slave,有多对 Master-Slave HA高可用集群采用异步复 制方式,主备有短暂消息延迟
5、,毫秒级。优点:1、即使磁盘损坏,消息丧失的非常少,消息实时性不会被影响,因为Master宕机后,消费者仍然可以从 Slave消费,此过程对应用透明。不需要人工干预。性能同多Master模式几乎一样。缺点:1、 Master宕机,磁盘损坏时,因为主备有短暂消息延迟,未复制到slave的消息会丧失。2、 目前master宕机后,备机不能自动切换为主机。只有master可以接收消息,假设所有 master宕机,将不能接收消息4、多 Master多Slave模式,同步双写每个 Master配置一个或多个 Slave有多对 Master-Slave HA采用同步双写方式,主备都 写成功,才返回成功。优
6、点:数据与效劳都无单点,Master宕机情冴下,消费者可以从slave消费、消息无延迟,效劳可用性与数据可用性都非常高缺点:1性能比异步复制模式略低,収送单个消息的RT返回时间会略高。2、目前master宕机后,备机不能自动切换为主机。只有master可以接收消息,假设所有master宕机,将不能接收消息选用结论由于我们需要保证消息中间件的高可用性,消息不丧失、消息无延迟,所以我们选择“多 Master多Slave模式,同步双写模式。并且选择同步刷盘。3、2、2 多 Master多 Slave模式多master多slave模式网络构造图主要组件有: Name Server、Broker、Pro
7、ducer、Consumer1 Name Server是一个几乎无状态节点,可集群部署,节点之间无信息同步、记录Topic路由信息。2、 Broker分为 Master和Slave 一个 Master可以对应多个 Slave但是一个 Slave只能对应 一个 Master。3、Producer与Name Server集群中的其中一个节点随机选择建立长连接,定期从 Name Server获取Topic路由信息,并向提供 Topic效劳的Master建立长连接,定时向 Master发 送心跳。Producer只可以向Master发送消息。Producer完全无状态,可集群部署。4、 Consume
8、r与Name Server集群中的其中一个节点随机选择建立长连接,定期从NameServer获取Topic路由信息,并与提供Topic效劳的Master、Slave建立长连接,并定时向Master、Slave収送心跳。Consumer既可以从 Master订阅消息,也可以从Slave订阅消息,订阅规那么由Broker配置决定3、3集群搭建linux环境下部署rocketMq多master多slave模式、同步双写模式集群, 暂定为2个master, 2个slave3、3、1安装条件4 台 linux 效劳器、分为 master-a slave-a ; master-b slave-b效劳器防火
9、墙开启9876, 10911lokkit -p 9876:tcp -p 10911:tcp效劳器支持wget命令效劳器安装jdk,不低于使用的rocketMq的支持版本3、3、2安装步骤4 台 linux 效劳器、分为 master-a slave-a ; master-b slave-b假设ip分别为:master-a =slave- a =master-b =slave-b =3、3、2、1 master-a1从github下载RocketMQ安装包或源码自编译安装wget s:/github./alibaba
10、/RocketMQ/releases/download/v3.2.6/alibaba-rocketmq-3.2.6.tar.gz2解压缩、并创立数据、日志目录tar - xvf alibaba-rocketmq-3.2.2.tar.gz3配置环境变量:系统变量:Vi /etc/profile或者修改当前用户的环境变量例如:export ROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是环境变量生效4修改mq集群的master-a配置修改文件 $ROCKETMQ_HOM
11、E/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义* brokerClusterName=DefaultClusterbrokerName=broker-a *归属 master-slave组的名字brokerId=0 *0 表示为 master-slave组中为 masternamesrvAddr=:9876;:9876;:9876;:9876 *nameserv defaultTopicQueueNums=4autoCreateTopicEna
12、ble=trueautoCreateSubscriptionGroup=truelistenPort=10911 *Broker对外效劳的监听端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824 mapedFileSizeConsumeQueue=50000000 destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/a
13、libaba-rocketmq/data* 数据目录storePathmitLog=/opt/RocketMQ/alibaba-rocketmq/logs * 日志目录 maxMessageSize=65536flushmitLogLeastPages=4flushConsumeQueueLeastPages=2 flushmitLogThoroughInterval=10000 flushConsumeQueueThoroughInterval=60000 checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pull
14、MessageThreadPoolNums=128brokerRole=SYNC_MASTER即可 brokerClusterName=DefaultClusterbrokerName=broker-a *归属 master-slave组的名字brokerId=1 *1 表示在 master-slave组中为 slavenamesrvAddr=:9876;:9876;:9876;:9876 defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubs
15、criptionGroup=truelistenPort=10911 * 对外端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88 storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rock
16、etmq/data* 数据存放storePathmitLog=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/logs * 日志存放 maxMessageSize=65536角色同步双写 MasterflushDiskType=SYNC_FLUSH* 同步刷盘brokerlP1=*本机IP地址,多网卡易出错,请手工指定其他配置请参考RocketMQ开发指南”,最新版针对 v3.2.45 启动 mq 集群的 master-a 跳转到 RocketMQ的bin目录下cd $ROCKETMQ_HOME/bi nn ohup
17、 sh mqn amesrv &n ohup sh mqbroker-c $ROCKETMQ_HOME/co nf/2m-2s-sy nc/perties &3、3、2、2 slave-a1从github下载RocketMQ安装包或源码自编译安装|wget s:/github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解压缩、并创立数据、日志目录tar - xvf alibaba-rocketmq-3.2.2.tar.gz3配置环境变量例如:export ROCKET
18、MQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是环境变量生效4修改mq集群的slave-a配置修改文件 $ROCKETMQ_HOME/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义、只要保证配置文件的brokerName正确 flushmitLogLeastPages=4 flushConsumeQueueLeastPages=2 flushmitLogThoroughlnterval=10000 flus
19、hConsumeQueueThoroughlnterval=60000 checkTransactionMessageEnable=false sendMessageThreadPoolNums=128 pullMessageThreadPoolNums=128 brokerRole=SLAVE *角色 Slave flushDiskType=SYNC_FLUSH * 同步刷盘 brokerlP1= *本机ip,多网卡,建议自定义其他配置请参考RocketMQ开发指南”,最新版针对v3.2.45 启动 mq 集群的 slave-a跳转到RocketMQ的bin目录下cd $
20、ROCKETMQ_HOME/bi nn ohup sh mqn amesrv &n ohup sh mqbroker-c $ROCKETMQ_HOME/co nf/2m-2s-sy nc/perties &3、3、2、3 master-b1从github下载RocketMQ安装包或源码自编译安装wget s:/github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解压缩、并创立数据、日志目录tar - xvf alibaba-rocketmq-3.2.2.tar
21、.gz3配置环境变量例如:export ROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是环境变量生效4修改mq集群的master-b配置修改文件 $ROCKETMQ_HOME/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义* brokerClusterName=DefaultClusterbrokerName=broker-b *归属 master-slave组的名字brokerId=0 *0 表示
22、为 master-slave组中为 masternamesrvAddr=:9876;:9876;:9876;:9876 *nameserv defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911 *Broker对外效劳的监听端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824mapedFileSize
23、ConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFilelnterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/alibaba-rocketmq/data* 数据目录storePathmitLog=/opt/RocketMQ/alibaba-rocketmq/logs * 日志目录 maxMessageSize=65536flushmitLogLeastPages=4flushConsumeQueueLeastP
24、ages=2flushmitLogThoroughlnterval=10000flushConsumeQueueThoroughlnterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SYNC_MASTER*角色同步双写 MasterflushDiskType=SYNC_FLUSH* 同步刷盘brokerlP1=*本机IP地址,多网卡易出错,请手工指定其他配置请参考RocketMQ开发指南”,最新
25、版针对 v3.2.45 启动 mq 集群的 master-b跳转到RocketMQ的bin目录下cd $ROCKETMQ_HOME/bi nn ohup sh mqn amesrv &n ohup sh mqbroker-c $ROCKETMQ_HOME/co nf/2m-2s-sy nc/perties &3、3、2、4 slave-b1从github下载RocketMQ安装包或源码自编译安装|wget s:/github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2
26、解压缩、并创立数据、日志目录tar - xvf alibaba-rocketmq-3.2.2.tar.gz3配置环境变量例如:export ROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是环境变量生效4修改mq集群的slave-a配置修改文件 $ROCKETMQ_HOME/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义、只要保证配置文件的brokerName正确即可* brokerCluster
27、Name=DefaultClusterbrokerName=broker-b *归属 master-slave组的名字brokerld=1 *1 表示在 master-slave组中为 slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911 * 对外端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFilelntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88 storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/data * 数据存放 storePathmitL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咖啡饮品标准化制作试题及答案
- 2025至2030年中国二位式温度控制器行业发展研究报告
- 2024公共事业自考试题解析及答案
- 2024年五年级数学上册 三 小数除法 1除数是整数的小数除法 第2课时除数是整数的小数除法(二)教学设计 西师大版
- 2025至2030年中国中东式滚筒架市场分析及竞争策略研究报告
- 2025至2030年中国不锈钢玻璃护栏市场现状分析及前景预测报告
- 全国川教版信息技术九年级上册第2课《多媒体作品中的文字表达》教学设计
- 小自考行政管理课程的考核要求及试题及答案
- 《运动的快慢》(教案)苏教版科学四年级上册
- 收纳师考试各类题型的攻略与解析试题及答案
- 楼梯踏步抹灰标准合同7篇
- 【厦门大学】DeepSeek大模型赋能高校教学和科研
- 《清华大学介绍》课件
- 硫磺安全技术说明书MSDS
- 重症专科护士考试题库(含答案)
- 光驱的读取偏移值度矫正数据
- 桥架一点通大全
- (完整版)《广东省建设工程计价依据》
- 提高水性玻璃烤漆水性金属烤漆的耐溶剂耐水煮附着力和柔韧性的解决方案
- 西游记三打白骨精剧本讲解学习
- 自动扶梯维维护保养施工方案
评论
0/150
提交评论