假设我有几个微服务,每个微服务都公开一组 REST 端点。假设微服务 A 正在与微服务 B 进行通信,并且它们交换 JSON 数据。
此 JSON 数据需要在微服务 A 和 B 上进行序列化和反序列化。此序列化逻辑和模型在两个微服务代码库上都是相同的。
我可以通过将模型类移动到一个小的依赖项中并在两个微服务上使用它来减少这种重复。没问题!这可能违背微服务架构的目标,即“不共享任何内容”。但我觉得更潜在的需要解决的问题是代码重复。大家觉得怎么样?
最佳答案
在这种情况下,我看不到“不分享任何内容”的意义。只要您将解/序列化器作为某个连接中的工件,您就不会“共享”任何内容,而是使用(以某种方式)外部库。 如果您使用例如日志记录,您的两个项目都将使用例如slf4s,但他们不共享它,因为每个人单独使用它。
关于scala - 具有 Play 和 JSON 序列化的微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32392202/