使用微服务,不同的服务有相似的实体存储在数据库中,如何处理?
With Microservices, different services has similar entities to be stored in database, how to deal with it?
我正在尝试了解什么是微服务。
据我所知,它只是独立的独立服务,可以相互调用或由客户端调用。
假设我有 ProductService 和 UserService。如果我们的系统允许人们对产品和用户发表评论,我们应该将两个系统的评论存储在一个评论 table 中,还是每个系统都应该有单独的评论 table?
每个服务应该使用自己的数据库还是将它们存储在一个地方?
As I understand right now, it's just separated self-contained services
that can be invoked by each other or by the client
你懂的!这是一个相当不错的定义:
- 分离 - 分别设计、构建、部署和管理
- 独立 - 完全自主
- 可以相互调用 - 通过众所周知的协议进行通信,同步或异步。
- 或由客户端 - 每个服务公开它自己的可组合UI组件
If our system allows people to comment on product as well as user,
should we store the comments of both systems in a comments table
只有在您有单独的评论服务时才会这样做。根据您自己的定义,服务应该是独立的。这意味着没有共享依赖项,如数据模型或数据库表。
Should each service use its own database or store them in one place?
同样,根据您的定义,服务应该是分开的(或至少是可分开的),因此只要它们不使用相同的数据库实例,它们就可以可以共享服务器实例.
听起来你在考虑根据实体拆分服务,这并不是一个好主意。
在您提供的示例中,您可以采用任何一种方法,也可以将它们与两者分开存储,或者复制。这取决于您尝试做什么、您如何访问该信息以及您的服务如何相互交互。在不了解完整上下文的情况下快速解决方案可能会给您带来麻烦,因此最好现在花点时间避免这种情况。
解释什么是微服务以及如何构建微服务可能需要一两本书,所以我鼓励您从 Microservices by Sam Newmann.
开始
我以前推荐过那本书,这是一本很好的主题介绍。它在第一章中回答了您的问题。
我正在尝试了解什么是微服务。
据我所知,它只是独立的独立服务,可以相互调用或由客户端调用。
假设我有 ProductService 和 UserService。如果我们的系统允许人们对产品和用户发表评论,我们应该将两个系统的评论存储在一个评论 table 中,还是每个系统都应该有单独的评论 table?
每个服务应该使用自己的数据库还是将它们存储在一个地方?
As I understand right now, it's just separated self-contained services that can be invoked by each other or by the client
你懂的!这是一个相当不错的定义:
- 分离 - 分别设计、构建、部署和管理
- 独立 - 完全自主
- 可以相互调用 - 通过众所周知的协议进行通信,同步或异步。
- 或由客户端 - 每个服务公开它自己的可组合UI组件
If our system allows people to comment on product as well as user, should we store the comments of both systems in a comments table
只有在您有单独的评论服务时才会这样做。根据您自己的定义,服务应该是独立的。这意味着没有共享依赖项,如数据模型或数据库表。
Should each service use its own database or store them in one place?
同样,根据您的定义,服务应该是分开的(或至少是可分开的),因此只要它们不使用相同的数据库实例,它们就可以可以共享服务器实例.
听起来你在考虑根据实体拆分服务,这并不是一个好主意。
在您提供的示例中,您可以采用任何一种方法,也可以将它们与两者分开存储,或者复制。这取决于您尝试做什么、您如何访问该信息以及您的服务如何相互交互。在不了解完整上下文的情况下快速解决方案可能会给您带来麻烦,因此最好现在花点时间避免这种情况。
解释什么是微服务以及如何构建微服务可能需要一两本书,所以我鼓励您从 Microservices by Sam Newmann.
开始我以前推荐过那本书,这是一本很好的主题介绍。它在第一章中回答了您的问题。