我将部署一组基于JAVA的微服务。
我对是否:

  • 通过“java -jar [JAR_NAME]”作为简单的jar运行它们
  • 在基于Java的Docker容器中运行它们。
  • 将它们作为 war 来运行。

  • 请为我提供每种实现的利弊,因为如果我使用建议的最佳方法,这将使我省去很多麻烦:)

    提前致谢。

    最佳答案

    绝对是Docker。使用容器化可为您提供最大的灵活性。

    在第一种方法中,jar依赖于Java。每当您创建新的VM时,都需要安装软件修订集以支持您的应用程序。

    第二种方法的好处

    首先,所有内容都将放在单个容器中。

    您可以在容器中安装所有必需的软件,并且该容器可以是任何VM中的用户。您可以灵活地将自己选择的Java用于每个微服务。仅安装docker,一切都将工作。

    其次,开发产品奇偶校验

    如果您非常关注微服务架构和12-factor应用程序。然后, docker 有助于支持许多因素。
    您的Java和其他软件在您的所有环境中都将是唯一的。这意味着由于运行时环境的某些版本不匹配,无论它是在QA中还是在Prod中,您都不会感到惊讶。

    第三,灵活性

    如果您进入微服务架构,那为什么只有Java。您也可以使用GO,Python或其他语言。这时,与其在每个VM上为每个平台安装运行时环境,不如将微服务包含在容器中非常有用。

    最后,易于部署

    您可以使用docker-compose或docker swarm在单个命令中运行100个mivroservice。

    10-06 13:41
    查看更多