⼤数据下状态机实现


⼤数据下状态机实现 Lotuseed-AIDA(⾸席架构师 ) www.lotuseed.com 背景 常⻅的场景 • 实时流计算 • 批处理的中间结果 • 有上下⽂关系的中间态 • 字典数据 常⻅的痛点 • 回滚⾄某个时间点 (BUG) • 性能 • 不能查询历史 • 丢失部分状态数据 设计思路 缓存思路 • 读写⾼效 • 热点数据 • 允许 core • 定期清理 存储思路 • 全量存储 • 周期内变更明细 • 明细查询 • merge 实现 逻辑结构 (⼀ ) • cache_state管理服务 • 从队列获取数据批量的存储 到存储服务器 • 管理数据的 merge • ClientsLib库 • 从性能⾓度出发 • 为了更好的兼容性 ,可以独⽴ 成⼀个 proxy的服务 caches queues cache_state ClientsLib data storage 逻辑结构 (⼆ ) • Caches • memcached、 redis, etc. • Queues • redis、 kafka、 zeromq, etc. • data storage • postgresql, etc. caches queues cache_state ClientsLib data storage 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的临时表 部署结构 • 部署的⼏个关键点 • cache 和 queue必须分离到 不同的物理主机上 • cache_state可以与 queue部 署到⼀起 • DB做到数据不丢失 queues database cache_state caches app service ( Thanks! www.lotuseed.com 中国最具规模的第三⽅独⽴移动数据分析服务商 Postgres Conference China 2015 中国用户大会 更多精彩,尽在PG社区 •PostgreSQL中国社区 : •PostgreSQL专业1群 : 3336901(已满) •PostgreSQL专业2群 : 100910388 •PostgreSQL专业3群 : 150657323 •文档翻译群 : 309292849 PostgresChina微信公众号 PostgreSQL用户会微博 postgres.cn
还剩15页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

ygfb

贡献于2015-12-07

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf