RocketMq消息队列实施计划方案_第1页
RocketMq消息队列实施计划方案_第2页
RocketMq消息队列实施计划方案_第3页
RocketMq消息队列实施计划方案_第4页
RocketMq消息队列实施计划方案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

消息队列实施方案1、 背景异步解耦合、给前端系统提供最高效的反应2、 常见消息队列对此2、1ActiveMqActiveMQ是一个完全支持JMS1.1和J2EE1.4规的JMSProvider实现优点:Java语言支持集群模式缺点:性能在消息中间件中处于下游2、2RabbitmqRabbitmq是基于AMQP使用erlang语言实现的消息队列系统优点:1、 完整的消息队列系统,支持多种消息队列模式,包括竞争消费;2、 支持集群模式,扩展集群容量和性能比较方便,集成了集群的监控和管理;3、 支持消息的持久化;缺点:1、 需要学习比较复杂的核口和协议,比较耗费时间;2、 性能不是特别理想大概在1wqps左右;3、 使用Erlang语言,语言基础;2、3KafkaKafka是LinkedIn开发的一个高性能、分布式的消息发布订阅系统。优点:1、 分布式集群可以透明的扩展,增加新的服务器进集群。2、 高性能。单机写入TPS约在百万条/秒3、 容错。数据都会复制到凡台服务器上。缺点:1、复杂性。Kafka需要zookeeper集君吊的支持,Topic通常需要人工来创建,部署和维护较一般消息队列成本更高定位于日志传输、存在消息丢失的肯能、消息乱序3、消息发送错误无重试2、4RocketMQRockerMq是阿里公司中间件团队参考Kafka思想,用Java语言实现的消息传输系统优点:1、 较高性能,单机写入TPS单卖例约7万条/秒2、 容错,多种集群模式、可以解决容错问题3、 消息重试发送4、 顺序消息可以严格执行缺点:1、消息重复、消费端需要做去重操作2、5选用结论从项目业务与团队技术偏向考虑,我们应该需要一种数据安全性比较高,保证每个消息都会被执行;有容错机制、支持集群模式高可用;性能不错,可以在毫秒级处理消息;支持顺序消息的消息中间件,RockerMq可以满足这些要求。RockerMq简介3、1RockerMq产品企绍参考阿里公司提供的《RocketMQ开发指南》,最新版针对v3.2.43、2RockerMq集群3、2、1部署方式Rockermq共有四种部署方式,分别是:1、 单个Master一旦Broker重启或者宕机时,会导致整个服务不可用2、 多Master模式一个集君吊无Slave,全是Master,例如2个Master戒者3个Master优点:1、 配置简单,2、 容错,单个Master宕机或重启维护对应用无影响,在磁盘配置为RA1D10时,即使机器宕机不可恢复情况下,由于RA1D10磁盘非常可靠,在同步刷盘时消息不会妥,异步刷盘丢失少量消息,3、 性能最高。3、多Master多Slave模式,异步复制每个Master配置一个或多个Slave,有多对Master-Slave,HA(高可用集群吊)采用异步复制方式,主备有短暂消息延迟,毫秒级。优点:1、即使磁盘损坏,消息丢失的非常少,消息卖时性不会被影响,因为Master宕机后,消费者仍然可以从Slave消费,此过程对应用透明。不需要人工干预。性能同多Master模式凡乎一样。缺点:1、 Master宕机,磁盘损坏时,因为主备有短暂消息延迟,未复制到slav。的消息会丢失。2、 目前master宕机后,备机不能自动切换为主机。只有master可以接收消息,若所有master宕机,将不能接收消息4、多Master多Slave模式,同步双写每个Master配置一个或多个Slave,有多对Master-Slave,HA采用同步双写方式,主备都写成功,才返回成功。优点:数据与服务都无单点,Master宕机情呀下,消费者可以从slave消费、消息无延迟,服务可用性与数据可用性都非常高缺点:1、 性能比异步复制模式略低,U又送单个消息的RT(返回时问)会略高。2、 目前master宕机后,备机不能自动切换为主机。只有master可以接收消息,若所有master宕机,将不能接收消息选用结论由于我们需要保证消息中间件的高可用性,消息不丢失、消息无延迟,所以我们选择“多Master多Slave模式,同步双写”模式。并且选择同步刷盘。3、2、2多Master多Slave模式Broker BrokerMaster! Slaves多master多slave模式网络结构图主要组件有:NameServer、Broker、Producer,Consumer1、NameServer是一个凡乎无状态节点,可集君吊部署,节点之间无信息同步、记录Topic路由信息。2、 Broker分为Master和Slave,—个Master可以对应多个Slave,但是一个Slave只能对应一个Master。3、 Producer与NameServer集君吊中的其中一个节点(随机选择)建立长连接,定期从NameServer获取Topic路由信息,并向提供Topic服务的Master建立长连接,定时向Master发送心跳。Producer只可以向Master发送消息。Producer完全无状态,可集■君吊部署。4、 Consumer与NameServer集君吊中的其中一个节点(随机选择)建立长连接,定期从NameServer获取Topic路由信息,并与提供Topic服务的Master、Slave建立长连接,并定时向Master、SIaveU又送心跳。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服务器防火墙开启9876,10911lokkit-p9876:tcp-p10911: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、1master-a1从github下载RocketMQ安装包或源码有编译安装wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.6/alibaba-rocketmq-3.2.6.tar.gz2解压缩、并创建数据、日志目录tar-xvfalibaba-rocketmq-3.2.2.tar.gz3配置环境变量:系统变量:Vi/etc/profile或者修改当前用户的环境变量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${PATH}:${ROCKETMQ_HOME}/binsource命令是环境变量生效4修改mq集君吊的master-a配置修改文件$ROCKETMQ_HOME/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义#brokerClusterName=DefaultClusterbrokerName=broker-a#归属master-slave组的名字brokerId=0#0表示为master-slave组中为masternamesrvAddr=:9876;:9876;:9876;:9876#nameservdefaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#Broker对外服务的监听端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/alibaba-rocketmq/data#数据目录storePathCommitLog=/opt/RocketMQ/alibaba-rocketmq/logs#日志目录maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SYNC_MASTER#角色同步双写MasterflushDiskType=SYNC_FLUSH#同步刷盘brokerIP1= #本机IP地址,多网卡易出错,请手工指定其他配置请参考《RocketMQ开发指南》,最新版针对v3.2.45启动mq集君吊的master-a跳转到RocketMQ的bin目录下>cd$ROCKETMQ_HOME/bin>nohupshmqnamesrv&>nohupshmqbroker-c$ROCKETMQ_HOME/conf/2m-2s-sync/perties&3、3、2、2slave-a1从github下载RocketMQ安装包或源码有编译安装wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解压缩、并创建数据、日志目录tarxvfalibaba-rocketmq-3.2.2.tar.gz3配置环境变量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${PATH}:${ROCKETMQ_HOME}/binsource命令是环境变量生效4修改mq集君吊的slave-a配置修改文件$ROCKETMQ_HOME/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义、只要保证配置文件的brokerName正确即可#brokerClusterName=DefaultClusterbrokerName=broker-a#归属master-slave组的名字brokerId=1#1表示在master-slave组中为slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#对外端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/data#数据存放storePathCommitLog=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/logs#日志存放maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SLAVE#角色SlaveflushDiskType=SYNC_FLUSH#同步刷盘brokerIP1=#本机ip,多网卡,建议有定义其他配置请参考《RocketMQ开发指南》,最新版针对v3.2.45启动mq集群的slave-a跳转到RocketMQ的bin目录下>cd$ROCKETMQ_HOME/bin>nohupshmqnamesrv&>nohupshmqbroker-c$ROCKETMQ_HOME/conf/2m-2s-sync/perties&3、3、2、3master-b1从github下载RocketMQ安装包或源码有编译安装wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解压缩、并创建数据、日志目录tarxvfalibaba-rocketmq-3.2.2.tar.gz3配置环境变量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${PATH}:${ROCKETMQ_HOME}/binsource命令是环境变量生效4修改mq集君吊的master-b配置修改文件$ROCKETMQ_HOME/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义#brokerClusterName=DefaultClusterbrokerName=broker-b#归属master-slave组的名字brokerId=0#0表示为master-slave组中为masternamesrvAddr=:9876;:9876;:9876;:9876#nameservdefaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#Broker对外服务的监听端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/alibaba-rocketmq/data#数据目录storePathCommitLog=/opt/RocketMQ/alibaba-rocketmq/logs#日志目录maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SYNC_MASTER#角色同步双写MasterflushDiskType=SYNC_FLUSH#同步刷盘brokerIP1= #本机IP地址,多网卡易出错,请手工指定其他配置请参考《RocketMQ开发指南》,最新版针对v3.2.45启动mq集群的master-b跳转到RocketMQ的bin目录下>cd$ROCKETMQ_HOME/bin>nohupshmqnamesrv&>nohupshmqbroker-c$ROCKETMQ_HOME/conf/2m-2s-sync/perties&3、3、2、4slave-b1从github下载RocketMQ安装包或源码有编译安装wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解压缩、并创建数据、日志目录tarxvfalibaba-rocketmq-3.2.2.tar.gz3配置环境变量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${PATH}:${ROCKETMQ_HOME}/binsource命令是环境变量生效4修改mq集君吊的slave-a配置修改文件$ROCKETMQ_HOME/conf/2m-2s-sync/perties不是强制必须使用这个文件,使用者可以自行定义、只要保证配置文件的brokerName正确即可#brokerClusterName=DefaultCluster#归属#归属master-slave组的名字brokerId=1#1表示在master-slave组中为slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#对外端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/data#数据存放storePathCommitLog=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/logs#日志存放maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SLAVE#角色

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论