与 Spring 和 Kotlin 在微服务架构中共享数据 类

Shared data classes in microservice architecture with Spring and Kotlin

假设您有两个相互通信的微服务,两者共享数据 类 作为合同。虽然您不想复制每个微服务项目中的所有合同,但共享它们的最佳方式是什么?

照目前来看,只有两个选项:

我的团队前段时间遇到过相同的情况,我们决定采用您第二点的变体。
我们使用 Maven Multi-Module 项目,因此一个微服务生成了库,它是然后由第二个微服务导入。

Maven Multi-Module 项目解释如下:
https://www.baeldung.com/maven-multi-module

project1 > project2 依赖不是一个好主意,因为它可能会在未来发生变化,你最终将不得不重构整个事情。

我要做的是创建一个发布到内部 Nexus 或 artifactory 的共享库,然后你可以将它作为依赖项添加到你的项目中,这样你就会有这样的东西:

library > project1
library > project2

另一个要考虑的想法是,如果您只共享数据传输对象,则使用 Protocol Buffers 之类的东西。这具有版本控制和向前兼容性的额外优势。