如何在微服务架构中的微服务之间共享 Java 模型

2022-09-03 16:56:59

我正在设计新应用的体系结构。我选择了微服务架构。在我的体系结构中,我注意到我有由不同微服务使用的模型。我想知道是否有一种方法可以在每个微服务中编写模型代码的微服务之间共享模型代码。

顺便说一句,我正在为我的应用程序使用弹簧启动框架。


答案 1

您应该只共享定义微服务API的模型,例如Protobuff文件或从它们生成的Java类。.proto

这通常是通过创建单独的项目或将微服务项目转换为多模块项目来完成的,其中一个模块是具有接口定义的瘦API模块。

在微服务之间共享代码没有错,但你必须小心。共享太多的内部实现细节,最终得到的是分布式整体式架构,而不是微服务


答案 2

可以使用通用模型创建单独的项目,创建此项目的 jar,并在其他微服务中添加此 jar 的依赖项。

但是我有一个实践经验,维护这个通用项目是一场噩梦,因为对于每个更改,您都必须创建一个新版本并更新所有微服务的构建脚本。

在我看来,我们不应该在微服务之间共享模型。


推荐