Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 理解微服务架构_Spring_Mongodb_Docker_Jar_Microservices - Fatal编程技术网

Spring 理解微服务架构

Spring 理解微服务架构,spring,mongodb,docker,jar,microservices,Spring,Mongodb,Docker,Jar,Microservices,由于我正在努力理解某些工作的微服务架构模式,因此我遇到了以下问题: 人们总是说微服务通常有自己的数据库。但这是否意味着它必须始终位于同一服务器或容器上(例如,拥有一个运行MongoDB和my JAR的docker容器)?或者这也意味着当我的MongoDB位于其他地方时,我的JAR在一台服务器上运行(例如两个容器) 如果第一个是正确的(JAR和one容器中的数据库),我如何防止在对我的应用程序进行一些更改之后,以及在重新部署我的JAR之后,MongoDB的数据被重置(因为现在正在运行一个全新的容器

由于我正在努力理解某些工作的微服务架构模式,因此我遇到了以下问题:

人们总是说微服务通常有自己的数据库。但这是否意味着它必须始终位于同一服务器或容器上(例如,拥有一个运行MongoDB和my JAR的docker容器)?或者这也意味着当我的MongoDB位于其他地方时,我的JAR在一台服务器上运行(例如两个容器)

如果第一个是正确的(JARone容器中的数据库),我如何防止在对我的应用程序进行一些更改之后,以及在重新部署我的JAR之后,MongoDB的数据被重置(因为现在正在运行一个全新的容器)


非常感谢:-)

是的,每个微服务都应该有自己的数据库,如果任何其他微服务需要另一个微服务拥有的数据,那么他们就使用微服务公开的API来完成不,完全没有必要将微服务及其数据库托管在同一台服务器上。例如,一个微服务可以在本地托管,其数据库可以像AWS DynamoDB或RDS一样驻留在云中。

是的,每个微服务都应该有自己的数据库,如果任何其他微服务需要另一个微服务拥有的数据,那么他们可以使用微服务公开的API来实现不,完全没有必要将微服务及其数据库托管在同一台服务器上。例如,微服务可以在本地托管,其数据库可以像AWS DynamoDB或RDS一样驻留在云中。

备选意见:

  • 在99%的现实生活中,你不能有一个单独的容器运行 数据库和应用程序,它们应该分开,因为 (db)保持状态,而另一个(app)应为无状态
  • 微服务不需要单独的数据库,通常单独的模式就足够了(例如,您不想为每个微服务部署单独的Exadata:)。重要的是,只有这个微服务可以读写给定的表并对其进行修改,其他人只能通过微服务公开的接口在这些表上操作
备选意见:

  • 在99%的现实生活中,你不能有一个单独的容器运行 数据库和应用程序,它们应该分开,因为 (db)保持状态,而另一个(app)应为无状态
  • 微服务不需要单独的数据库,通常单独的模式就足够了(例如,您不想为每个微服务部署单独的Exadata:)。重要的是,只有这个微服务可以读写给定的表并对其进行修改,其他人只能通过微服务公开的接口在这些表上操作
首先,每个微服务都应该有自己的数据库

其次,没有必要也不建议将微服务及其数据库放在同一个容器上


通常,单个微服务将有多个可扩展的部署,它们都连接到一个数据库实例,该实例应该是一个不同的容器,如果使用NoSql DB之类的数据库集群

首先,每个微服务都应该有自己的数据库

其次,没有必要也不建议将微服务及其数据库放在同一个容器上


通常,单个微服务将有多个可扩展的部署,它们都连接到一个数据库实例,该实例应该是一个不同的容器,如果使用NoSql DB之类的数据库集群

好的,所以这不是关于有一个(可部署的)工件,而是关于一堆元素(比如一个Jar和一个数据库),它们一起构成一个微服务?!一点也不。微服务及其数据库的部署可以在一台服务器上,也可以在不同的服务器上。好吧,这不是说只有一个(可部署的)工件,而是指一堆元素(例如一个Jar和一个数据库)一起构成微服务?!一点也不。microservice及其数据库的部署可以在一台服务器上,也可以在不同的服务器上。