背景:我正在设计一个软件应用程序,它可以读取数百万或更多文件并转换或仅解析这些文件。部分需求是构建一个可扩展的分布式系统,以便可以相应地扩展读取和解析。
基本上,文件名的最低限度详细列表是一个数据库,客户端需要访问该列表才能知道接下来需要解析/转换哪些文件。这些文件再次位于另一个服务器/位置。虽然大多数部分都是设计好的,但需要重新审视的一个关键部分是将文件名提供给不同客户的设计。
我现在有两个选择:
设计一个位于 DB 旁边的服务,并将所有请求引导到文件名并提供给客户端。所以在这种情况下,客户端与服务(预定义的协议/格式)交谈并获取列表。
设计客户端直接与数据库对话并在客户端内实现同步/通道化。
我对第一个选项的唯一关注是,这是一个可扩展的架构/设计吗?有没有人在可扩展架构中处理过这样一种情况,其中一种资源在扩展中变得至关重要(在我的情况下,它可能是一项服务为所有客户端提供/服务)