我试图弄清楚如何使用微服务设计可以处理多种文件格式的服务,例如:
我有一个客户使用文件格式A,另一个使用格式B,另一个使用格式C.
在为每个客户处理特定格式后,我需要将此格式转换为通用格式,然后插入数据库。
我尝试的第一件事是为每个客户设计一个服务,但他们都需要知道基本格式,如果需要更新这种基本格式,我需要更新所有服务。
我试图将服务处理器解耦并只有一个位置可以转换为基本格式。
如果我的客户服务人员知道基本格式,如果此格式发生变化,我需要更新所有这些格式。如果我有翻译格式的服务,则此服务需要了解所有客户格式。
如何设计此解决方案?
答案 0 :(得分:1)
首先计划内部数据格式以适应您的应用目的,它应该方便下一步操作。所有应用程序都应使用内部数据格式,只有特定的输入输出适配器才能了解特定的客户格式。 然后从自定义数据格式A,B,C,...中编写适配器以转换为基本内部格式。这些适配器应该尽可能薄,它们应该具有最小的逻辑 - 只需转换数据而已。这样就可以更容易地维护它们。 你是对的 - 如果你改变内部格式,你必须审查并可能更改所有适配器。这就是他们应该非常瘦的原因。 想想你可以有哪些默认值? 我建议从几种客户格式开始调试所有概念。 Wheather将解决方案作为一组模块中的微服务集成在一个monilith中 - 以这种方式没有多大意义。