大数据下的状态机实现.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大数据下的状态机实现

⼤数据下状态机实现 Lotuseed-AIDA(⾸席架构师) 背景 常⻅的场景 • 实时流计算 • 批处理的中间结果 • 有上下⽂关系的中间态 • 字典数据 常⻅的痛点 • 回滚⾄某个时间点(BUG) • 性能 • 不能查询历史 • 丢失部分状态数据 设计思路 缓存思路 • 读写⾼效 • 热点数据 • 允许core • 定期清理 存储思路 • 全量存储 • 周期内变更明细 • 明细查询 • merge 实现 逻辑结构(⼀) • cache_state管理服务 ClientsLib • 从队列获取数据批量的存储 到存储服务器 caches queues • 管理数据的merge • ClientsLib库 cache_state • 从性能⾓度出发 data storage • 为了更好的兼容性,可以独⽴ 成⼀个proxy的服务 逻辑结构(⼆) • Caches ClientsLib • memcached、redis, etc. caches queues • Queues • redis、kafka、zeromq, etc. cache_state • data storage data storage • postgresql, etc. ClientLib • state_cache_query • ⾸先查cache • 缓存⽆时查db的状态总表 • state_cache_update • 更新缓存 • push to queue cache_state(⼀) • batch insert to table • 从分组队列中批量获取数据 • 批量的insert到指定的tmp表 • switch • 定时的对临时表进⾏切换 • 在下次切换前,需检查之前的切换后的临时表是否已merge到总表 • merge • 对已切换后的临时表中的数据,把最新的数据更新到总表 cache_state(⼆) • loader • 缓存异常情况 • 服务重启 • cache2db • queue异常情况,把cache⾥最新的state数据 insert到db的临时表 部署结构 app service • 部署的⼏个关键点 (

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档