我将部署一组基于JAVA的微服务。
我对是否:
请为我提供每种实现的利弊,因为如果我使用建议的最佳方法,这将使我省去很多麻烦:)
提前致谢。
最佳答案
绝对是Docker。使用容器化可为您提供最大的灵活性。
在第一种方法中,jar依赖于Java。每当您创建新的VM时,都需要安装软件修订集以支持您的应用程序。
第二种方法的好处
首先,所有内容都将放在单个容器中。
您可以在容器中安装所有必需的软件,并且该容器可以是任何VM中的用户。您可以灵活地将自己选择的Java用于每个微服务。仅安装docker,一切都将工作。
其次,开发产品奇偶校验
如果您非常关注微服务架构和12-factor应用程序。然后, docker 有助于支持许多因素。
您的Java和其他软件在您的所有环境中都将是唯一的。这意味着由于运行时环境的某些版本不匹配,无论它是在QA中还是在Prod中,您都不会感到惊讶。
第三,灵活性
如果您进入微服务架构,那为什么只有Java。您也可以使用GO,Python或其他语言。这时,与其在每个VM上为每个平台安装运行时环境,不如将微服务包含在容器中非常有用。
最后,易于部署
您可以使用docker-compose或docker swarm在单个命令中运行100个mivroservice。