专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

大数据生态中的RocketMQ5。0

  本文作者:李伟ApacheRocketMQCommitter,RocketMQPython客户端项目Owner,ApacheDorisContributor,腾讯云消息队列资深开发工程师,著有《RocketMQ分布式消息中间件(核心原理与最佳实践)》。
  01RocketMqueue101
  RocketMQ拥有诸多出色的特性:
  比如多副本机制,RocketMQ支持存储层的多副本Dledger,它是基于Raft协议的一致性存储库,保证能够从存储层实现多副本;
  比如ACL鉴权机制,用于确定哪些producer能生产、哪些消费者组能消费,以及服务端的消息过滤;
  比如事务消息,它是RocketMQ实现的生产者事务,生产者向broker发送一条事务消息,由生产者执行本地事务。如果执行成功,则向broker端发送commit事件,消费者才能消费;如果本地事务处理失败,则发送rollback事件,使消费者无法消费该消息。
  比如RequestReply,它是类似于同步RPC调用的过程,用户相同的逻辑用消息来实现,能够实现同步RPC调用的过程,可以将调用API和发送消息两套逻辑进行统一。
  广播消息指消息发出后,订阅它的所有消费者都能消费到所有实例。负载均衡消费指默认策略下,同一个消费者组的消费者都能平均地消费消息,具体策略可自行调整。RocketMQ支持Pull、Push和Pop三种消费模式,支持java、go、cpp、python、c等多种语言。
  搭建RocketMQ集群的流程如下:
  第一步:安装NameServer集群。NameServer集群包含一个或多个NameServer节点。启动服务时,默认监听9876端口。NameServer集群搭建好之后,启动一套Broker集群。
  第二步:搭建Broker集群,使用经典masterslave部署模式,master提供读写,同时会将数据存储和元数据同步一份到slave。通过10912的HA端口做数据同步。
  第三步:写生产者代码生产。生产者集群包含多个生产者实例,通过broker的10911和10909端口向broker发送数据。
  第四步:消费者通过10911或10909端口向broker拉取数据。
  生产者或消费者实例启动时,会先配置NameServer地址,由生产者或消费者从NameServer集群上拉取topic、Queue和Broker等路由信息,然后根据路由信息发送或拉取消息。
  生产者和消费者均与broker之间存在channel连接。如果生产者或消费者长时间没有与broker联系,则broker会将连接剔除。
  以下为RocketMQ101相关名词解析:
  生产者包含生产者组和生产者实例。生产者组是若干个生产者实例的组合,且RocketMQ希望同一个生产者组内的实例行为一致。消费者组和消费者实例也同理。行为一致指生产者实例都生产同一种类型的消息,比如都生产订单消息,包括创建订单、订单发货、订单删除等步骤。行为一致的好处在于消息的生产和消费比较规整,不会出现混乱。
  Topic是消息的分类,为字符串形式,可以通过topic将某集群内的全部消息进行分类,所有topic的消息组成全量的消息。而Tag又属于topic的子分类。
  消费者在订阅消息时,必须先指定topic再指定tag,这样的一条记录被称为订阅关系。如果订阅关系不一致,则会导致订阅混乱,发生重复消费或不消费、消息堆积等情况。
  Queue类似于分区,但它是逻辑上的概念,并不是物理存储上的概念。Property类似于header,property包含除了主要信息以外的扩展信息,比如消息属于哪个业务ID、发送者IP等。向某个topic发送消息时,能够指定property。
  NameServer中包含broker与cluster的关系、Queuetopic与broker的关系,即路由信息。
  Broker中包含以下四部分:
  CommitLog常规的文件存储。RocketMQ发送的数据会append到CommitLog。
  Consumerqueue消费者在消费topic时,topic中包含多个queue,每一个queue都被称为consumerqueue,每个消费者对于每个consumerqueue都存在消费进度。
  index在dashboard上能够根据key来查询消息。
  Dledgercommitlog由Dledger存储库来管理的CommitLog,能够实现多副本。
  RocketMQ的生产消费模型十分简单。如上图,TopicA有四个queue,其中queue1、queue2在MasterBroker1上,queue3、queue4在MasterBroker2上。ProducerGroupA下有两个生产者实例,分别向两个broker的queue发送消息。ConsumerGroupA也有两个消费者consume1和consume2。
  从四个queue里取消息时,每个消费者默认的策略是依次向queue1、queue2、queue3、queue4循环发消息,以此最大程度地保证消息分布均匀。
  消费者的消费模式有负载均衡和广播消费消费两种。
  负载均衡策略下,比如共有4条queue,则consumerinstant1和consumerinstant2会分别被分配到2个queue,具体分配到哪两条需由算法决定。
  广播消费策略下,假设topic有100条消息,则consumerinstance1和consumerinstance2每一个消费者实例都会消费到100条消息,即同消费者组的每个消费者示例都会消费到全量的消息。
  02RocketMQ生态项目
  RocketMQ生态项目包含以下几个部分:
  客户端:客户端主要分为Java客户端与非Java客户端,其中RocketMQJava客户端是最原生的客户端,与RocketMQ的编写语言一致,功能也最为齐全。
  计算:RocketMQ支持轻量级的预计算,比如轻量级的ETL。RocketMQFlink能够直接对接Flink,方便将RocketMQ数据传输到Flink做计算,利用Flink强大的生态同步到下游多种类型的目的地。RocketMQConnect与RocketMQStreams是轻量级的计算框架,功能更简单、轻量,部署运维也更容易。
  管控:RocketMQDashboard拥有简单稳定且功能强大的管控端,能够支持常用的运维操作比如修改配置、禁用消费者等。
  云原生:RocketMQDocker支持打包RocketMQ源码成为Dockerimage项目,能够支持各种不同平台的打包。RocketMQOperator支持RocketMQ上K8s,能够支持比如重启进程、下发配置、拉起集群等操作。
  监控:RocketMQExporter目前能够支持80指标,可直接导入到Prometheus做告警和监控。开源项目可通过Prometheus的数据配置Grafana做大盘,实现监控能力。此外,Prometheus能够支持Hook回调,方便公司用户将RocketMQ指标监控对接到自己的告警平台。
  云原生是技术行业的趋势,能够减少成本、方便运维和管理。RocketMQ新版本实现了存储计算分离,支持更快速、更方便地上K8s。EDA事件驱动和无服务也是大势所趋,比如腾讯云的云函数、阿里云的eventbridge等产品都是Serverless、EDA场景,能够直接集成RocketMQ。微服务领域,RocketMQ也提供了诸多原生支持。
  电商、金融等传统领域正在进行数字化转型,消息传递、指标、日志传递等需求都能够利用RocketMQ简单快速地实现。
  总而言之,RocketMQ能够利用自己强大的生态项目,支持企业各种各样形态的数据传输和计算。
  03RocketMQ数据流构建
  RocketMQ的数据流构建主要包含消息、CDC数据流、监控数据流以及湖仓数据流。CDC数据主要负责记录记录数据变更,监控数据流包括业务监控和常规监控。
  消息的构建如上图所示。
  以订单服务为例,订单服务收到创建订单的请求,创建成功后会将订单的基本信息通过RocketMQ发送给B服务。假设B服务为短信服务消费,由B服务向客户发送短信通知,包含订单相关的详细信息。
  RocketMQ发送消息至B服务时,通过重试和死信实现最终一致性,以保证消息能够成功发送给消费者。RocketMQ有16次重试机会,且为阶梯性重试,能够持续十几个小时。
  RocketMQ支持通过CanalFlinkCDC、RocketMQcollect的方式,将Binlog等数据提供给计算平台,再由RocketMQFlink、RocketMQStreams等进行轻量级的计算。计算完成后,将结果转发给下游数据库比如MySQL、ES、Redis等,进行异构或同构的数据同步。
  RocketMQ支持从flume读取日志文件发送至RocketMQ,再通过RocketMQCollect或RocketMQFlink等将日志数据进行消费、ETL转换或发送至ES。ES已与ELK产品打通,可以在Kabana上查看日志。
  除了日志,RocketMQ能够在业务系统做后端监控埋点,通过RocketMQclient将监控埋点数据发到RocketMQ,再通过RocketMQFlink或RocketMQStreams消费数据并发送给业务监控平台或数据湖仓库等,生成在线报表或实时报表。
  前端监控大部分通过HTTP请求发送至RocketMQ,再通过RocketMQ相关的轻量级计算框架,根据不同诉求将数据汇总至不同的后端,比如ES或自建平台。
  所有数据都能入到湖仓,因为所有数据都会有数据分析、数据挖掘或出统计报表的诉求。比如前后端的监控、TP数据库里的业务数据、日志文件的指标数据或日志文件都能通过对应的工具发到RocketMQ,通过RocketMQ提供的轻量级计算工具进行计算,然后发送到下游的Hive、Doris、Clickhouse或Hudi等数据库或数据仓库,产出报表、实时大盘、实时数据表等。
  RocketMQ能够采集各种数据,比如metrics、TP数据、log的数据,然后通过RocketMQ提供的轻量级计算工具进行计算,最终汇总到同构异构的数据库、数据仓库或数据湖等。
  数据构建流程中,RocketMQ作为中间核心的传输链路,是否能够借助本身的特性避免偶然性的因素影响数据的传输?
  RocketMQ的架构十分简单,而简单也意味着稳定和可靠。因此,使用RocketMQ做核心数据链路时,其稳定性和可靠性能够避免很多意外,减少不可控因素。
  网络抖动往往无法避免,它可能导致数据丢失,而RocketMQ能够通过重试机制保证数据的最终一致。比如消息只发一半时发生了网络抖动,网络恢复如何保证数据最终能够被消费者完整地消费?
  默认的消费机制下,RocketMQ有16次重试机会,按阶梯重试,重试间隔逐渐增加,最大限度地让消费者能够消费到数据。如果16次重试后依然没有消费成功,则消息会进入死信队列,由人工介入处理。产生死信消息后,RocketMQ能够产生告警,以快速发现并处理问题。
  针对数据丢失,RocketMQ提供了消息轨迹,帮助快速定位,找到问题所在。消费者消息是否成功发送、broker是否存储成功、消费者是否成功消费到等问题,都可以通过消息轨迹进行确认。
  针对带宽打满的问题,RocketMQ提供了服务端过滤的功能。假设Topic内是访问日志,将tag设为域名,消费者组可以只订阅某个域名下的访问日志,RocketMQ能够在服务端对消息进行过滤,再发送给消费者组。Broker只会将属于消费者的域名消息发送给消费者,不会发送所有消息,因此能节约大量带宽,可高达8090。
  04RocketMQ5。0
  RocketMQ5。0架构有两个重大改变,实现了存储计算分离以及轻量级客户端。
  存储和计算分离主要为数据层面,将做存储和计算的broker拆分成了存储的broker和计算的broker,两类broker各司其职,分别负责存储和计算。
  此前,RocketMQ的客户端生态较为丰富,但各个客户端的功能差异较大,难以实现一致。RocketMQ5。0彻底地解了该问题,实现了轻量级的基于gRPC的多语言客户端。RocketMQ5。0将此前客户端的重逻辑比如rebalance等转移至由Cbroker负责处理,使客户端逻辑变得非常轻量,客户端只剩消息消费或发消息调用接口,各个语言的逻辑容易统一,兼容性更好,不会出现实现方式不同导致逻辑不一致。
  RocketMQ5。0除了存储和计算分离以外,还实现了数据面和控制面的拆分。控制面主要负责接入,此前只能通过NameServer的方式接入,而现在除了NameServer以外还提供了一种新的通过LBGroup的方式接入,更简单易用。LBGroup能够方便大家用更简单的方式接入,逻辑集群的接入可以通过LBgroup来实现,比如哪些客户端应该连到哪些集群,这也是NameServer难以实现的能力。一组NameServer会管理一个物理集群,物理集群可拆分为多个逻辑集群,每个逻辑集群能够分给不同的租户使用。
  RocketMQ可以看作是一个通道,通道有上游和下游,且不同行业的上下游不一样,通道中的数据也不一样。
  互联网已经涉及到每一个领域,但是垂直领域的发展依然非常欠缺。比如配送互联网涉及到交通运输等,需要有交通运输方面的专家与互联网技术进行深度结合,才能对配送行业引起深远广泛的影响。
  未来,我们需要技术人员深耕于某一行业,做出真正适用于行业的优秀的互联网产品。
  当前,RocketMQ已经能够支持事件和流。工业互联网行业非常重要的一个元素是IoT事件,它可能来自于各种终端设备,每天都会产生大量的、持续的事件,这些大量的数据都需要队列进行传输,提供给下游做计算。
  因此,RocketMQ未来的发展将着力于事件和流。
  RocketMQ已经推出了RocketMQCollect、RocketMQFlink和RocketMQstreams,在流计算上逐渐发力,形成了一整套完善的生态,能够帮助用户快速构建流式应用。而消息更是RocketMQ的擅长之处,能够帮助用户在不同场景的消息下方便、快速地接入使用。RocketMQ已经开源了MQTT等协议,使接入设备更快速方便。
  随着RocketMQ5。0的发布,RocketMQ在处理消息、事件和流上实现了统一,有了越来越强大的优势,存储和计算分离的特性也使其能提供更低的成本,使企业上云更省钱、更省力,也更省人力。

马良山之战志愿军用坦克吊打英美王牌军,气得英美两国互相掐架文夜谈编辑史言有志马良山之战志愿军用重武器狂虐英美联军,气得英美战后互飙脏话!在抗美援朝当中,单纯就火力说,一般情况下都是联合国军压着我们打,他们也对此颇为感到有安全感。哪怕是被志抗美援朝时,首批入朝作战的志愿军共有六个军,军长分别都是谁?对于生活在新时代的人们而言,战争似乎早已成为了过去。在大多数人的印象中,战争都只存在于过往的时间之中,而在战争的最后,我们取得了胜利,并创建了一个崭新的中国。多年来,我国一直和平发全国春季游泳锦标赛汪顺斩获第三金李冰洁成就四冠王3月21日晚,在结束的全国春季游泳锦标赛男子400米个人混合泳决赛中,奥运冠军汪顺以4分14秒23的成绩夺冠,继男子200米个人混合泳和男子100米仰泳后,斩获个人本次赛事的第三金全国春季游泳锦标赛开赛汪顺李冰洁各获两金新华社青岛3月19日电(记者高萌周欣)19日,2023年全国春季游泳锦标赛在青岛开赛,本次赛事是福冈世锦赛和杭州亚运会的第一站选拔赛。首个比赛日共决出7个项目的冠军,东京奥运会冠军辽宁医生院内遇袭,知情人爆出细节,嫌犯手段极其残忍一名66岁的男子马某某,使用改装射钉枪,将医生白某击伤,嫌疑人已被当场抓获!3月21日,一则关于辽宁省沈阳市第九人民医院一名医生遭到暴力袭击的消息在社交媒体上引起了广泛关注。据报道老龄化来临,哈萨克斯坦准备好了么?据统计分析网站ranking。kz发布的消息,哈萨克斯坦人口出现老龄化趋势。报道称,像许多其他国家一样,哈国也可以观察到人口老龄化迹象。比如,2022年初,65岁及以上女性人口在全领略世遗之美!600年武当金殿将发行数字藏品由武当山旅游经济特区管理委员会和湖北云雷信息技术有限公司联合推出数字文创产品千峰来朝武当金殿,将于2023年3月27日中午12点在鲸探平台正式发售,通过区块链技术,让购买者于一掌方飞向北极在洪湖与黑鹳白鹤惊喜相遇从水草丰茂,船到里面是开不动的,到相关研究人员只观测到2000多只鸟类,再到鸟类总数超过10万只,白鹤黑鹳等珍稀物种回归。洪湖国家级自然保护区的监测员乔茂胜见证着洪湖生态之变。洞庭武汉雨天拍花,就选海棠!烟雨朦胧的武汉开满枝头的海棠花令人惊艳树形低矮,花开浓密从伞一样的海棠树下走过听晶莹的雨珠滑过花瓣如梦似幻谁说雨天没有好风景?去看武汉街头的海棠不接受反驳摄影素锦雅集东湖牡丹园花芯文旅周刊红豆生南国红豆生南国,春来发几枝。愿君多采撷,此物最相思。这一首脍炙人口的相思,传诵千年,出自唐代大诗人王维之手。位于中国之南的海南是最正宗的南国,那么,海南有没有一种植物最相思?树多连理枝春江水暖鸭先知!毛茸茸的赤麻鸭定居丰台一年半北京日报客户端记者孙颖通讯员原梓峰澄澈的河水,从丰台区王佐镇绿野仙踪郊野乐园内蜿蜒而过,游弋的白鹅间,一只黄褐色的赤麻鸭非常抢镜。生态环境不断提升,让赤麻鸭这种候鸟定居在了绿水青山
在职考研怎么样?在职研究生的历史已经不复存在,它已经被改革成非全日制研究生,那么非全日制研究生靠谱吗?它有什么优势和不足呢?我国开展非全日制研究生目的是为了拓宽高层次专门人才培养渠道,更好的服务于教师资格证面试为什么会被挂?该怎么准备?谢邀。本人正职教师,学生时代通过了教师资格证考试。结合自己考教师资格证的经历给你几点意见通过了笔试,可以说是拿证近在咫尺,但是仍然会有30考生没法通过面试(据官方数据,面试通过率为我今年五十八岁,想交农村养老保险,过没过岁数?交与不交对你没多大影响,因为你己58岁了,既使一分钱都不交,两年后每个月也可以领到126块钱的养老金(此标准是湖南怀化市)。交养老保险没有年龄之说,只要你愿意就是59岁也可以交最后2021年养老金涨幅4。5,涨的金额什么时候补发?已经退休的养老人员一定要注意,2021年四月,社保部门就对今年的养老金进行了整改,总体养老金涨幅为4。5,相比去年的5,这就意味着部分人群的养老金很可能涨幅的幅度不是很大,而且养老女生,23岁,函授大专学历,是不是很多公司都不认可非全日制学历,什么工作比较合适?确实是这样的,虽然在法制上承认非全日制的大学学历,但是公司一般招人并不承认。究其原因,其实也很容易理解一大学生泛滥现在的大专本科生越来越多,企业不愁招不到大学生!在同样是大学学历的志愿兵三期士官自主就业的安排工作吗?志愿兵三期士官自主就业的按排工作吗?我愿意为各位战友们进行分析解答,以供您参考三期士官,证明你已服役了十二年,面临着退役。现在的政策是,三期退役的士官符合政府安置工作条件,可以按排新一代的社保卡已经下来了,那医疗保险里面的金额能不能取现呢?该注意些什么?新一代的社保卡已经下来了,那医疗保险里面的金额能不能取现呢?该注意些什么?首先恭喜!新一代社保卡是试点地区的先到福利!题主所说的新一代社保卡应该是第三代社保卡!目前我国多个地方已经卖净水器的总在说自来水不干净,而自来水公司却不发声为什么?本人是水务工作者,简单解释一下。首先,自来水厂的出厂水,会严格按照国家标准进行检测,确保不出现质量问题。任何一个指标出现问题,或者是人力无法控制的情况,导致个别指标超标,都会及时报农民可以一次性补交社保吗?感谢邀请,更感谢楼主的提问。楼主你好,作为农民来讲是可以参加新农村合作养老保险,也就是我们现在所称之为是城乡居民养老保险,那么这种居民养老保险到目前为止还是允许,一次性在退休之前补人死后到底是一片空白,还是有意识在其他维度残存后消亡或投胎?如果我真的死了,那今天肯定不会在这里写点东西了,一个人真正的死了那谁都不会有亇体验的机会,只有重度休克的人才有苏醒和回意的过程。肺大泡切住手术全麻醉,我从8。30分进手术室到晚上1行政副科提拔到事业单位担任正职(正科),划算吗?行政副科提拔为事业正科担任正职,划不划算要不要去,私以为,取决于单位层级。1如果是在县区一级,肯定以及绝对建议去。行政副科虽然有公务员身份的优势,毕竟是副科,最多是单位副职,而事业
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网