Python 全栈系列183 元数据的规划与命名

本文探讨了命名体系的重要性,特别是在微服务架构中。提出了基础服务、特定服务(包括GTask、FGTask和STask)的分类,并详细阐述了元数据的管理和使用,如数据区块、任务和服务的组织。使用MongoDB副本集进行存储,并强调了统一命名空间的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

名不正则言不顺,言不顺则事不成

命名本身是非常重要的,具体不再展开讨论了;总之,目前的当务之急是建立命名体系,这样使得概念都能够有合适的逻辑承载点。

内容

1 事务

本质上都是元数据

人能够处理的也就是元数据。我归纳了一下,目前我需要处理的几类元数据:

1.1 基础服务。

我是通过一个微服务体系来完成相关的功能,体系里包含了数据库、代理、门户以及各式各样的功能服务。有些是长期运行的基础服务,无论在哪台主机上都该被启动的。

**有些时候机器会迁移,此时如何在装机后一键恢复所有的微服务呢?**想象中,应该有一个地方记录了所有的微服务,然后某个程序就可以去启动这些指定的微服务。

还有一种情况是自动依赖满足。 一个微服务在启动时可以自动确保(ensure)相关的微服务在运行。

1.2 特定服务(workers)

这些特定的服务通常可以认为是各种各样的"工人",执行各种各样的任务,来完成日常所有的业务需求。我将他们分为三类:

  • 1 GTask: 通用的任务,处理最个性化的需求
  • 2 FGTask:与GTask不同,FGTask不依赖于任务表,执行的通常是通用的、高稳定性的任务
  • 3 STask: 周期任务,每分钟执行。

这几种任务通常是这么搭配:
STask进行嗅探,然后将变化更新到任务表;Workers会通过Manager执行这些任务(GTask),中间可能会调用FGTask辅助。

这些特定的服务都会使用一个核心逻辑工具(SCLC),SCLC会有数据表(sclc_df)和参数表(sclc_table)两类;要注意的是,sclc_table是元数据表,而sclc_df不一定是。

元数据的数据表会保存,但是普通数据的sclc_df是包含在任务内部的,是具体的明细数据。

1.3 要处理的数据(blocks)

这里认为要处理的数据一定有一个整型字段,按序排列。基本上可以认为就是mysql的自增主键。

会有一个主表,也是统计表。对于某一个目标数据(db.table)进行了区块划分。后面加的诸多统计都会体现在这里。另外还有一个与区块对应的任务表(Range)。

任务表除了Range还有Set。Set是离散方式的元数据任务,所以不能包含太多的id,mongo是比较合适列表的存储方式。

1.4 要执行的任务(tasks)

和数据区块类似,只不过是使用任务编号,这样会避免稀疏的问题。

2 存储

基于mongo

使用mongo的副本集进行存储。这样在进行分布式计算时就会非常自然,所有机器都有同样的数据。

元数据一定是存通用副本集的,而要处理的业务数据则视情况,看是否走副本集或单机mongo。

3 命名

到了最重要的部分,这里的命名空间全部是基于通用副本集下

序号名字解释
1DataBlock.tier1_tier2数据区块主表。【统计】:按照数据的id来做的区块。
2BatchTask.tier1_tier2_function_range区块任务。【任务】:实际要被执行的任务
3BatchTask.tier1_tier2_function_set离散任务。【任务】:实际要被执行的任务
4TaskBlock.tier1_tier2任务区块主表。【统计】:按照任务id做的区块
5BaseService.tier1_tier2【统计】主表,所有服务的定义在这里
6ServiceTask.tier1_tier2【任务】启动主表服务的任务
7GTaskRegGTask的定义信息。 【统计】GTask注册表
8GTask【任务】实际的任务
9STaskReg【统计】GTask注册表
10STask【任务】实际的任务
11FGTaskReg【统计】GTask注册表
12FGTask【任务】实际的任务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值