微服务部署---简单的 jar 与 docker 容器



我即将部署一组基于 JAVA 的微服务。 我很困惑是否:

  1. 通过"java -jar [JAR_NAME]"将它们作为简单的jar运行
  2. 在基于 JAVA 的 docker 容器中运行它们。
  3. 将它们作为战争运行。

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

提前谢谢。

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

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

第二种方法的好处,

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

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

二、开发产品奇偶校验

如果您非常喜欢微服务架构和 12 因素应用程序。然后 docker 有助于支持很多因素。 您的 Java 和其他软件在您的所有环境中都将是独一无二的。这意味着由于运行时环境的某些版本不匹配,您永远不会感到惊讶,无论它是否在 QA 中工作而不是在 Prod 中工作。

三、灵活性

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

最后,易于部署

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

最新更新