Docker容器在Spring云项目中的应用

我正在尝试使用弹簧和弹簧引导创build一个弹簧云微服务。 我开发了一个Spring云Eureka服务器作为单独的spring引导项目。 还为Zuul服务器创build了用于网关代理和路由的spring引导项目。

  • 现在我有3个spring引导项目,如上所述。 在这里,我将Docker容器引入到我的项目中。因此,我通过使用组合工具来探索基于pom.xml的容器化。
  • 所以当我部署我的微服务时,需要通过容器化部署所有项目? 那么云平台是否将所有的微服务处理成单独的容器?
  • 云中是否有任何问题,因为它们可以互相通信/互相调用,将所有微服务部署在不同的容器中?

任何人都可以帮助我澄清我对集装箱化和云部署我的spring云微服务的困惑吗?

所以当我部署我的微服务时,需要通过容器化部署所有项目? 那么云平台是否将所有的微服务处理成单独的容器?

你不是被迫docker化你所有的微服务。 你可以自己dockerize每个微服务,并保持一些非dockerized。 但是,这样做没有明显的好处。 如果您正在采用Docker,则最好是将所有的微服务Docker化。

Docker Maven插件configuration在每个项目中分别做得更好。 我build议只使用maven插件来构build图像,并可以将它们推送到registry。 然后,您可以分别部署每个图像。 我build议您使用Docker组合或Docker群集进行生产,以部署不同的微服务容器。

云中是否有任何问题,因为它们可以互相通信/互相调用,将所有微服务部署在不同的容器中?

不,不应该有任何问题。 但是你应该小心在容器通信时需要使用的主机名。 如果使用docker撰写,容器可以通过将服务名称作为主机名直接相互交谈。 例如,其他微服务可以使用http://eureka:8761向Eureka注册。 所以一定要设置正确的application.properties来达到其他的服务。