我试图了解微服务是什么。
据我所知,它只是分开的自包含服务,可以由彼此或客户端调用。
我们说我有ProductService和UserService。如果我们的系统允许人们对产品和用户发表评论,我们是否应该将这两个系统的评论存储在评论表中,还是应该每个系统都有单独的评论表?
每个服务是应该使用自己的数据库还是将它们存储在一个地方?
答案 0 :(得分:2)
据我所知,它只是分开的自足服务 可以由彼此或客户调用
你理解得很好!那是一个相当不错的定义:
如果我们的系统允许人们对产品和用户发表评论, 我们应该将两个系统的评论存储在评论表中吗?
如果你有一个单独的评论服务,你只会这样做。根据您自己的定义,服务应该是自包含的。这意味着没有共享依赖项,如数据模型或数据库表。
每个服务是应该使用自己的数据库还是将它们存储在一个地方?
再次引用您的定义,服务应该是分开的(或至少是可分离的),因此只要它们不使用相同的数据库实例,它们就可以共享服务器实例。
答案 1 :(得分:2)
听起来你觉得根据实体分割服务,这不是一个好主意。
在您给出的示例中,您可以使用这两种方法,也可以将它们分开存储或复制。这取决于您尝试做什么,如何访问这些信息以及您的服务如何相互交互。快速的解决方案,如果不了解完整的上下文,将来会给您带来麻烦,所以最好花一些时间来避免它。
解释什么是微服务以及如何构建它们可能需要一两本书,所以我建议你从Microservices by Sam Newmann开始。
我以前推荐过那本书,这是一个非常好的介绍。它在第一章中回答了你的问题。