返回顶部
首页 > 资讯 > 精选 >RocketMQ中broker server之如何实现状态管理
  • 324
分享到

RocketMQ中broker server之如何实现状态管理

2023-06-19 12:06:41 324人浏览 薄情痞子
摘要

这篇文章主要介绍RocketMQ中broker server之如何实现状态管理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!broker server在存储层之上,管理一个broker的状态,通过调用存储层Defau

这篇文章主要介绍RocketMQ中broker server之如何实现状态管理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

broker server在存储层之上,管理一个broker的状态,通过调用存储层DefaultMessageStore的接口实现消息读写。

broker server相关的核心类如下图:

RocketMQ中broker server之如何实现状态管理

一、ConsumerOffsetManager

管理每个consumer消费进度

public class ConsumerOffsetManager extends ConfigManager {    private ConcurrentMap<String, ConcurrentMap<Integer, Long>> offsetTable =        new ConcurrentHashMap<String, ConcurrentMap<Integer, Long>>(512);    private void commitOffset(final String clientHost, final String key, final int queueId, final long offset) {        ConcurrentMap<Integer, Long> map = this.offsetTable.get(key);        if (null == map) {            map = new ConcurrentHashMap<Integer, Long>(32);            map.put(queueId, offset);            this.offsetTable.put(key, map);        } else {            Long storeOffset = map.put(queueId, offset);            if (storeOffset != null && offset < storeOffset) {                log.warn("[NOTIFYME]update consumer offset less than store. clientHost={}, key={}, queueId={}, requestOffset={}, storeOffset={}", clientHost, key, queueId, offset, storeOffset);            }        }    }    // ...}

ConsumerOffsetManager会周期性把offsetTable持久化到磁盘中。

二、ConsumerManager

管理所有的订阅者组,为每个consumer group维护了以下信息:

  • topic订阅方式

  • 每个consumer的client channel

  • Push or Pull消费方式

  • 广播/集群消息模型

三、ProducerManager

维护producer端client channel及其他信息

四、SubscriptionGroupManager

维护subscription group信息

五、TopicConfigManager

维护Topic信息

以上是“RocketMQ中broker server之如何实现状态管理”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: RocketMQ中broker server之如何实现状态管理

本文链接: https://lsjlt.com/news/296174.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • RocketMQ中broker server之如何实现状态管理
    这篇文章主要介绍RocketMQ中broker server之如何实现状态管理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!broker server在存储层之上,管理一个broker的状态,通过调用存储层Defau...
    99+
    2023-06-19
  • vue状态管理模式之vuex如何实现
    小编给大家分享一下vue状态管理模式之vuex如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、初始vuex1.1 vu...
    99+
    2024-04-02
  • vue store之状态管理模式如何实现
    这篇文章给大家分享的是有关vue store之状态管理模式如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。状态管理一、状态管理(vuex)简介uex是专为vue.js应用程...
    99+
    2024-04-02
  • react18中react-redux状态管理的实现
    react的状态管理还是挺多的现在流行的有以下五种: RecoilMobXXStateReduxContext 今天我们来讲一下react众多状态管理之一的redux,虽然这个我不太...
    99+
    2024-04-02
  • Beam中的状态管理怎么实现
    在Beam中,状态管理主要通过Stateful DoFn来实现。Stateful DoFn是一种特殊类型的ParDo,它可以在处理元...
    99+
    2024-04-02
  • Flutter状态管理Bloc之定时器怎么实现
    小编给大家分享一下Flutter状态管理Bloc之定时器怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下1. 依赖dependencies:  flutter_bloc: ^...
    99+
    2023-06-29
  • vue3如何使用provide实现状态管理详解
    目录前言如何通过 provide/inject 实现 Vuex的功能在应用中注册此插件插件的入口文件创建 store ,把对应的数据挂载到根组件上实现 mapState、mapMut...
    99+
    2024-04-02
  • react18中react-redux状态管理怎么实现
    这篇文章主要介绍“react18中react-redux状态管理怎么实现”,在日常操作中,相信很多人在react18中react-redux状态管理怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”rea...
    99+
    2023-06-30
  • 如何理解Vue简单状态管理之store模式
    目录概述1. 定义 store.js2. 组件使用 store.js3. 实现效果概述 store 状态管理模式的实现思想很简单,就是定义一个 store 对象,对象里有 state...
    99+
    2024-04-02
  • 如何使用Redis实现用户登录状态管理
    《如何使用Redis实现用户登录状态管理,需要具体代码示例》  Redis是一种开源的内存数据库,它被广泛应用于缓存、会话管理和消息队列等领域。在Web开发中,用户登录状态管理是一个非常重要的功能,而Redis正是一个很好的选择来实现这一功...
    99+
    2023-11-09
    redis 用户 登录状态
  • Angular中如何使用ngrx做状态管理
    小编给大家分享一下Angular中如何使用ngrx做状态管理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ngrx/store的灵感来源于Redux,是一款集成R...
    99+
    2023-06-06
  • 集中式状态管理Vuex如何使用
    这篇文章主要讲解了“集中式状态管理Vuex如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“集中式状态管理Vuex如何使用”吧!1.vuex是什么一个专门在Vue中实现集中式状态管理的一...
    99+
    2023-07-05
  • SaltStack实战之配置管理-状态间关系
    SaltStack实战之配置管理-状态间关系学习 SaltStackSaltStack实战之配置管理-状态间关系1. 状态相关模块1.1 pkg1.2 file1.3 service1.4 req...
    99+
    2024-04-02
  • 如何安装vue状态管理Vuex
    这篇文章主要介绍了如何安装vue状态管理Vuex,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。安装vue状态管理的方法:1、创建一个基于Vue的工程,执行“npm insta...
    99+
    2023-06-25
  • Pinia.js状态管理器如何使用
    这篇文章主要讲解了“Pinia.js状态管理器如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pinia.js状态管理器如何使用”吧!前言Pinia.js 是新一代的状态管理器,由 V...
    99+
    2023-07-02
  • ReactNative状态管理rematch如何使用
    这篇文章主要介绍“ReactNative状态管理rematch如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ReactNative状态管理rematch如何使用”文章能帮助大家解决问题。Re...
    99+
    2023-07-05
  • 在Samza中如何管理状态和处理失败
    在Samza中,状态是通过Samza的State API来管理的。State API提供了一种简单的方式来定义和访问状态,并将状态持...
    99+
    2024-04-02
  • vue中使用pinia全局状态管理的实现
    目录与vuex的区别安装引入pinia创建状态目录pinia模块组成创建pinia模块在组件中使用该状态机pinia模块实例中的api讲解状态持久化与vuex的区别 去除了 muta...
    99+
    2024-04-02
  • ASP中如何使用Cookies进行状态管理
    在ASP中使用Cookies进行状态管理非常简单。下面是一个简单的示例: 创建一个Cookie并设置其值: <% Resp...
    99+
    2024-04-03
    ASP Cookies
  • nginx中状态统计如何实现
    今天小编给大家分享一下nginx中状态统计如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。基本介绍ngx_http_s...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作