在 AWS 中托管 Apache Camel 的最佳方式是什么?

Pet*_*ter 5 apache-camel amazon-web-services apache-camel-aws

当我们将工作负载转移到 AWS 时,我正在寻找一种广泛使用且具有适当连接器的 ETL 工具 - Apache Camel 似乎符合要求。然而,我正在努力寻找有关如何在 AWS 中部署 Camel 的信息 - 显而易见的是在 EC2 实例上,但我们希望避免虚拟机所需的设置和维护。我没有看到任何人将其作为托管服务提供,因此我想探索的选项是将其作为 ECS 中的容器运行,因为我们将运行许多其他容器。

容器似乎不是Apache Camel 网站上的安装选项- 也许对于一个旨在连接到其他所有东西的工具来说它的限制太大了?

在容器中运行 Camel 是否可以接受且实用?我在哪里可以找到有关它的更多信息?

gus*_*to2 2

Apache Camel 似乎符合要求。

事实上,Apache Camel 是一个很棒的集成框架。这就是重点。它是一个框架,而不是一个产品。因此,有多种方法可以运行 Camel 流程。作为一个网络应用程序,作为一个独立的应用程序,作为我们自己的代码的一部分。Camel 本身对您运行流程的方式非常不可知,这就是为什么您没有在网站中强制执行非常具体的方式。

如果您想要一个开箱即用的产品,可以使用 Apache Camel 生成容器化部署,您可以查看Apache ServiceMix、Apache Karaf 或其支持的 RedHat Fuse。

在容器中运行 Camel 是否可以接受且实用?我在哪里可以找到有关它的更多信息?

完全没问题。

问题:你能(你能够)用你的(任何其他)应用程序创建一个 docker 容器吗?根据这个问题,这项技能是缺乏的,我真的建议学习它。

您可以检查以下帖子https://medium.com/@wkrzywiec/how-to-put-your-java-application-into-docker-container-5e0a02acdd6b

FROM java:8-jdk-alpine
COPY ./target/myapp.jar /usr/app/myapp.jar
WORKDIR /usr/app
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "myapp.jar"]
Run Code Online (Sandbox Code Playgroud)

假设您可以将 ETL 任务作为独立应用程序运行,然后只需在容器中像任何其他独立应用程序一样运行它即可。

我们希望避免虚拟机所需的设置和维护

问题:你如何分配你的骆驼任务?我的意思是 - 你的构建结果是什么?战争档案?一个独立的应用程序?

要构建一个网络应用程序,你可以看到https://www.baeldung.com/spring-apache-camel-tutorial

在AWS中部署war文件最方便的方法是AWS Beanstalk服务。

如果您构建一个独立的应用程序(或使用 servicemix)并且可以构建一个容器,那么 ECS 或 Fargate 似乎是自然的选择。