我有2个服务(service1和service2),并且两个服务都使用相同的数据模型“ studentModel”,我想知道如何在两个服务之间共享studentModel。
1。构建一个studentModel.jar,所有服务均引用此jar
2。复制并粘贴代码
请帮助我如何在微服务架构中重用代码。
答案 0 :(得分:1)
在微服务方面,保留重复文件是可以的,因为您可能最终会获得分布式的整体。记住DDD中的边界上下文,并使用您的思考过程。没有共享库意味着没有耦合。
但是再次,DRY(不要重复自己)说你不应该重复,但是到什么程度?
一个库中的一个故障不应导致您使用该库的所有微服务都失败,因此整个微服务的目的都没有用。
有些工具可以在微服务之间共享代码,您可以查看 https://bitsrc.io/
所有这些都是我的想法,必须有一些更好的方法。
答案 1 :(得分:1)
我建议更进一步。根据我的经验,最好的方法是:
采用这种方法,每次更改微服务时都可以发布新的客户端库-易于维护和管理。
此外,随着系统的发展,它将帮助您节省大量时间。试想一下,您将使用核心服务(例如用户服务或个人资料服务)作为所有其他服务的依赖项。在这种情况下,绝对不能选择复制粘贴。
答案 2 :(得分:0)
为了更好的版本控制,我建议您构建一个jar并将其添加为对微服务的依赖。另外,您还可以通过将重复的代码放在子模块中并在各自的微服务模块中使用git子模块来进行探索。