给定两个服务,我应该转换源或目标的值吗



假设我有Service AService BService A是一个通过API公开其结果的爬虫。CCD_ 4最终消耗CCD_。

让我们举例说明这个问题,Service A公开了一个名为created_at的字段,该字段被收集为时间戳,即int。但是,此字段需要在Service B中保存为datetime。我应该转换Service AService B处的created_at值吗?

(注意:我知道,即使我在Service A转换值,它最初也会在Service B作为str使用,但有一些内置工具可以在保存到DB时免费进行转换。(

我倾向于在Service A转换,因为Service B更复杂,因此会留下更多的";责任;至CCD_ 19。需要明确的是:我仍然会在Service A检查数据的格式是否正确,但不会进行任何类型的转换来调整它

我的观点过于简化了吗?

正如@Vaibs正确地说的,只要没有进一步的要求或约束需要考虑,最好在消费者(服务B(中进行数据转换。

否则你可能会有两个缺点:

A( 服务A必须在日期对话中了解其所有消费者及其需求。B( 服务B的更改可能会触发服务A的更改。这两个服务正在耦合。

在微服务体系结构中,这种情况有时被称为"微服务";伪去耦";。代码被拆分为两个服务,但您必须同时更改和发布这两个服务;独立交付";。

最新更新