Docker怎么安装部署单机版Rocket


本文小编为大家详细介绍“Docker怎么安装部署单机版Rocket”,内容详细,步骤清晰,细节处理妥当,希望这篇“Docker怎么安装部署单机版Rocket”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目前主流的MQ主要是Rocketmq、kafka、Rabbitmq,Rocketmq相比于Rabbitmq、kafka具有主要优势特性有:支持事务消息(能够解决分布式事务的问题)支持顺序消息(底层已经使用内存队列实现)支持consumer端tag过滤,减少不必要的网络传输Rocketmq就是对kafka实现的升级版本。RocketMQ 优点单机吞吐量:十万级可用性:非常高,分布式架构消息可靠性:经过参数优化配置,消息可以做到 0 丢失功能支持:MQ 功能较为完善,还是分布式的,扩展性好支持 10 亿级别的消息堆积,不会因为堆积导致性能下降源码是 Java,方便结合公司自己的业务进行二次开发天生为金融互联网领域而生,对于可靠性要求很高的场景,尤其是电商里面的订单扣款,以及业务削峰,在大量交易涌入时,后端可能无法及时处理的情况RoketMQ 在稳定性上可能更值得信赖,这些业务场景在阿里双11已经经历了多次考验RocketMQ 缺点支持的客户端语言不多,目前仅支持 Java 及 C++,而且 C++ 还不成熟没有在 MQ 核心中去实现 JMS 等接口,有些系统要迁移需要修改大量代码provider消息生产者,位于用户的进程内,Producer通过NameServer获取所有Broker的路由信息,根据负载均衡策略选择将消息发到哪个Broker,然后调用Broker接口提交消息。provider group生产者组,简单来说就是多个发送同一类消息的生产者称之为一个生产者组。consumer消息消费者,位于用户进程内。Consumer通过NameServer获取所有broker的路由信息后,向Broke免费云主机域名r发送Pull请求来获取消息数据。Consumer可以以两种模式启动,广播(Broadcast)和集群(Cluster),广播模式下,一条消息会发送给所有Consumer,集群模式下消息只会发送给一个Consumer。consumer group消费者组,和生产者类似,消费同一类消息的多个 Consumer 实例组成一个消费者组。Topic Topic用于将消息按主题做划分,Producer将消息发往指定的Topic,Consumer订阅该Topic就可以收到这条消息。Topic跟发送方和消费方都没有强关联关系,发送方可以同时往多个Topic投放消息,消费方也可以订阅多个Topic的消息。在RocketMQ中,Topic是一个上逻辑概念。消息存储不会按Topic分开。Message代表一条消息,使用MessageId唯一识别,用户在发送时可以设置messageKey,便于之后查询和跟踪。一个 Message 必须指定 Topic,相当于寄信的地址。Message 还有一个可选的 Tag 设置,以便消费端可以基于 Tag 进行过滤消息。也可以添加额外的键值对,例如你需要一个业务 key 来查找 Broker 上的消息,方便在开发过程中诊断问题。Tag 标签可以被认为是对 Topic 进一步细化。一般在相同业务模块中通过引入标签来标记不同用途的消息。Broker Broker是RocketMQ的核心模块,负责接收并存储消息,同时提供Push/Pull接口来将消息发送给Consumer。Consumer可选择从Master或者Slave读取数据。多个主/从组成Broker集群,集群内的Master节点之间不做数据交互。Broker同时提供消息查询的功能,可以通过MessageID和MessageKey来查询消息。Borker会将自己的Topic配置信息实时同步到NameServer。Queue TopicQueue Topic和Queue是1对多的关系,一个Topic下可以包含多个Queue,主要用于负载均衡。发送消息时,用户只指定Topic,Producer会根据Topic的路由信息选择具体发到哪个Queue上。Consumer订阅消息时,会根据负载均衡策略决定订阅哪些Queue的消息。Offset是RocketMQ在存储消息时会为每个Topic下的每个Queue生成一个消息的索引文件,每个Queue都对应一个Offset记录当前Queue中消息条数。NameServerNameServer可以看作是RocketMQ的注册中心,它管理两部分数据:集群的Topic-Queue的路由配置;Broker的实时配置信息。其它模块通过Nameserver提供的接口获取最新的Topic配置和路由信息。Producer/Consumer通过查询接口获取Topic对应的Broker的地址信息Broker注册配置信息到NameServer, 实时更新Topic信息到NameServer这里用作学习使用,所以使用docker安装,安装速度快。1、安装启动nameserver服务2、安装启动broker服务根据容器卷配置,在指定位置添加broker.conf内容 /opt/rocketmq/conf/broker.conf 。(可以不需要)brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = docker宿主机IP启动broker服务3、安装启动控制台集群部署原理图broker主备主:备:同步主节点的数据,当主节点宕机之后,可以从被变为主保证高可用。在rocketmq中分为多主多从实现对我们topic数据实现分片存储。单个Master节点, 缺点就是如果宕机之后可能整个服务不可用;多个Master节点,分摊存放我们的消息,缺点:没有Slave节点,主的Master节点宕机之后消息数据可能会丢失的;多个Master和Slave节点 采用异步形式 效率非常高 数据可能短暂产生延迟(毫秒级别的)多个Master和Slave节点 采用同步形式, 效率比较低、数据不会产生延迟。集群的部署主要在于配置文件,nameserver部署好之后,多个broker的配置文件中配置同一个nameserver 集群的连接信息,broker集群就搭建好了。之后 Rocketmq-console 连接其中一个nameserver就可以了。配置文件说明:#集群名称,可以区分不同集群,不同的业务可以建多个集群,多个broker的配置文件中的该值必须一样
brokerClusterName=kaico# Broker 的名称, Master 和Slave 通过使用相同的Broker 名称来表明相互关系,以说明某个Slave 是哪个Master 的Slave 。
brokerName=broker-a
# 一个Master Barker 可以有多个Slave, 0 表示Master ,大于0 表示不同Slave 的ID 。
brokerId=0#与fileReservedTim巳参数呼应,表明在几点做消息删除动作,默认值04 表示凌晨4 点。
deleteWhen=04
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876
autoCreateTopicEnable=true #是否自动创建主题(true为允许自动创建集群)
#topic默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭,默认【true】
autoCreateSubscriptionGroup=true
#Broker 监听的端口号,如果一台机器上启动了多个Broker , 则要设置不同的端口号,避免冲突。
listenPort=10911
brokerIp=192.168.1.11、首先启动两个nameserver服务2、启动多个broker服务(这里安排两个)第一个broker配置文件brokerClusterName=kaico #集群名称
brokerName=broker-a #broker的名称
brokerId=0 #master节点的标识(0表示是master节点)
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876 #nameServer集群第二个broker配置文件brokerClusterName=kaico #集群名称
brokerName=broker-b #broker的名称
brokerId=0 #master节点的标识(0表示是master节点)
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876 #nameServer集群启动方式:先启动nameServer服务再去启动broker,在启动broker的命令中可以指定nameServer的连接信息。读到这里,这篇“Docker怎么安装部署单机版Rocket”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: laravel的5.2和5.6版本有哪些区别

这篇文章主要讲解了“laravel的5.2和5.6版本有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel的5.2和5.6版本有哪些区别”吧! laravel的5.2和5.6版本的区别:1、5…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/22 22:04
下一篇 03/22 22:05

相关推荐