首页 > 其他分享 >深入研究消息队列06 高级功能

深入研究消息队列06 高级功能

时间:2023-09-15 21:39:21浏览次数:39  
标签:Topic 存储 06 队列 ZooKeeper Broker 深入研究 集群

27 Topic 分区 订阅如何实现

动态配置

深入研究消息队列06 高级功能_消息队列功能

深入研究消息队列06 高级功能_消息队列功能_02

深入研究消息队列06 高级功能_消息队列功能_03

在消息队列里面,因为需要保持架构的简洁度,基于本地文件也是一种常用的方案。比如 Kafka 和 Pulsar 就是基于 ZooKeeper 来实现的动态配置,因为架构中已经集成了 ZooKeeper。RocketMQ 的 Nameserver 是一个缓存组件,没有实际的存储和 Watch 机制,无法实现类似 ZooKeeper 的效果,所以用的是热加载本地文件的方案。

集群和节点元数据的格式和存储

深入研究消息队列06 高级功能_消息队列功能_04

因为 Broker 数量不会很多,一个集群大概是百或千的量级,所以如果从 Broker 数量来看,这两个方案的区别不大。目前业界主要使用的是第二个思路,主要的原因是:Broker 元数据分开存储方便管理,避免节点间相互影响,也可以避免单个 ZooKeeper Node 的数据量过大存不下。

深入研究消息队列06 高级功能_消息队列功能_05

在集群中支持 Topic 和分区

深入研究消息队列06 高级功能_消息队列功能_06

深入研究消息队列06 高级功能_消息队列功能_07

深入研究消息队列06 高级功能_消息队列功能_08

深入研究消息队列06 高级功能_消息队列功能_09

深入研究消息队列06 高级功能_消息队列功能_10

消费进度的保存机制

深入研究消息队列06 高级功能_消息队列功能_11

深入研究消息队列06 高级功能_消息队列功能_12

深入研究消息队列06 高级功能_消息队列功能_13

标签:Topic,存储,06,队列,ZooKeeper,Broker,深入研究,集群
From: https://blog.51cto.com/u_6478076/7486541

相关文章

  • [官方培训]06-UE光影基础 _ 李文磊 Epic 笔记
    UE光影基础光照系统UE4光照系统UE5光照系统直接光及阴影定向光源定向光源将模拟从无限远的源头处发出的光线。这意味着此光源投射出的阴影均为平行,因此适用于模拟太阳光。点光源点光源的工作原理很像一个真实的灯泡,从灯泡的钨丝向四面八方发出光。然而,为了性能考虑......
  • 代码随想录算法训练营第10天| 232.用栈实现队列 ● 225. 用队列实现栈
    栈和队列232.用栈实现队列stack:queue:卡哥代码一个入栈,一个出栈,即可模拟队列的pop操作pop之前要检查出栈是否为空若为空,则排出入栈里所有的元素至出栈中classMyQueue{public:stack<int>stackIn;stack<int>stackOut;MyQueue(){......
  • 3 - 任务调度算法 & 同步与互斥 &队列
    之前的都是按照优先级不同允许抢占(不讲道理),不管你在做什么,轮到优先级最高的任务,直接抢占执行怎样才能讲道理呢?稍微等等嘛,等我做完活你再做 1支持抢占,0不支持抢占 同优先级任务是否交替执行,1交替0不交 空闲任务是否礼让其他任务礼让的话,自己的函数逻辑在时间片内只执行......
  • AtCoder Grand Contest 063
    PrefaceAGC好难啊,这场补完最近就没啥比赛好补了,接下来去训练下专题吧像C题这种美妙的人类智慧题感觉以我的脑子一辈子也想不出来wwwA-MexGame对于任意一段前缀,我们可以求出对应的每个人的操作次数以及每个人拥有的位置数考虑Alice的最优策略一定是从小到大地放入Bob对应......
  • P2501 [HAOI2006] 数字序列
    原题是思路非常值得学习的一道题第一问:首先我们感性上觉得这题应该和LIS有一点关系,但里面有一点问题:1750505018如果我们求LIS的话,我们会认为只需要改掉505050即可,但其实我们只改掉这些数,我们是无法做到让数单增的我们发现这个限制写成数学语言即为:\(a_i-a_j\geq......
  • POJ 2823 Sliding Window 单调队列
    这道题就是用单调队列来维护,但是用G++交TLE,用c++5000多ms,真是囧...代码很丑,就凑合着看吧#include<stdio.h>inta[1000009],que[1000009];intmain(){ intn,k,i,head,tail,flag=1,f; scanf("%d%d",&n,&k); for(i=1;i<=n;i++) scanf("%d",&a[i]); head=......
  • Java学习_006_考试奖励
    需求:小明期末考试,小明的爸爸对他说,会根据他不同的期末考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。     奖励:95-100-----山地自行车一辆;  90-94------游乐场游玩一次;80-89----......
  • Serverless 数仓技术与挑战 - 张雁飞|3306π
    09月16日(本周六)下午,DatabendLabs 联合创始人张雁飞将作为嘉宾参与由3306π组织的「3306π数据库朋友圈」主题分享。大纲在本次分享中,我们将介绍一款新型Serverless数仓技术。该技术旨在解决传统数仓在扩展性、成本和管理上的局限性,能够大幅提升性能并降低成本。我们还将......
  • 队列(Queue)
    一、队列的概念队列是一个先进先出的数据结构。联想一下链表,在单链表中,只能对表尾进行插入,对表头进行结点的删除,这样强限制性的链表,就是所说的队列。也就是说,队列是限定在表的一端进行插入,表的另一端进行删除的数据结构。如图去买票排队,每一列队伍都有一个队尾和队首,先来的先买......
  • 学习笔记之Redis消息队列-基于Stream的消息队列
    学习笔记之Redis消息队列-基于Stream的消息队列Stream是Redis5.0引入的一种新数据类型,可以实现一个功能非常完善的消息队列。其实只需要知道写入消息队列的命令和读取消息队列的命令就行了写入消息队列:XADD读取消息队列的方式之一:XREAD在业务开发中,我们可以循环的调用......