说明
在基于Docker的运行基础和微服务的架构之后,自然会走向分布式的存储和计算方式。分布式的好处很明显,但是也更加复杂了。我想对于多功能的开发,以及多任务的运行管理会自然的被设计者着重考虑。
内容
以最近刚刚完成的一个同步任务为例,有三方面体会:
- 1 依赖。服务间、变量间都会有依赖,这些依赖会随着任务的多样化变得复杂,超出人的处理范围。这块我的解决方案是基于图库和算法来完成依赖的存储、处理和分析。这个会排到更后面解决。
- 2 集成。任务是松耦合的,并且是基于微服务的,意味着其执行不是高可靠的。所以在程序与程序之间,逻辑与逻辑之间会分割开,但又要衔接。因此会产生很多额外的管理逻辑。这块我的方案是SCLC,第一这次的任务逻辑已经足够复杂,使用SCLC来实验正好。SCLC本质上是将操作分的更细,但是又通过适当的组合将复用的组合动作整合起来。并可以为使用者提供足够灵活和清晰的控制。代价是抽象并规范通用操作在一开始会消耗很多时间。
- 3 管理。这个问题是眼前最直观的,通过独立的、手动的启动容器,会产生越来越多的”线头“,很快就会逼着我完成整合。
本篇仅讨论管理方面的一些点
1 案例描述
这个案例其实比较复杂的,原因是基础数据不受控,而且数据量比较大。
简单来说:
- 1 主要更新表A。表A是实体和文书的关系表,表A的更新方式是先删后插。
- 2 表A变化时,需要遍历其关联的实体名称E、文书D以及结构化S字段。
- 3 S表是进行分表的,所以大约要搜索30张表。