[英]Understanding Microservice Architecture
由于我正在努力理解微服务架构模式的某些工作,因此遇到了以下问题:
人们总是说微服务通常有自己的数据库。 但这是否意味着它总是必须位于同一服务器或容器上(例如,拥有一个运行MongoDB和我的JAR的docker容器)? 还是这还意味着在MongoDB位于其他位置(例如两个容器)的同时,我的JAR在一台服务器上运行?
如果第一个是正确的( 一个容器中的JAR 和数据库),那么在对应用程序进行一些更改之后以及在重新部署我的JAR之后,如何防止MongoDB的数据重置(因为现在正在运行一个新的容器),我该如何防止)?
非常感谢:-)
替代意见:
首先,每个微服务都应该有自己的数据库。
其次,没有必要也不建议将微服务及其数据库放在同一容器中。
通常,单个微服务将具有用于扩展的多个部署,并且它们都连接到应为差异的单个数据库实例。 容器,如果使用NoSql DB之类的东西,它就是数据库集群。
是的,每个微服务都应该有自己的数据库,如果任何其他微服务需要另一个微服务拥有的数据,那么它们将使用微服务公开的API来进行处理。 不,完全不必将微服务及其数据库托管在同一服务器上。 例如-微服务可以托管在内部,其数据库可以存在于AWS DynamoDB或RDS之类的云中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.