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

What is the best way to host Apache Camel in AWS?

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

容器似乎不是 Apache Camel website 上的安装选项 - 也许它对于一个旨在连接其他一切的工具来说太局限了?

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

Apache Camel appears to fit the bill.

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

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

Is it acceptable and practical to run Camel in a container, and where could I find more information about it?

完全没问题。

问题:您(是否能够)使用您的(任何其他)应用程序创建一个 docker 容器?基于这个技能缺乏的问题,我真的建议学习它。

您可以查看以下内容 post 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"]

让我们假设您可以 运行 您的 ETL 任务作为一个独立的应用程序,然后 运行 它就像任何其他独立应用程序一样在容器中。

it we would like to avoid the setup and maintenance required by Virtual Machines

问:你们的camel任务是怎么分配的?我的意思是 - 你的构建结果是什么? war 文件?一个独立的应用程序?

要构建 Web 应用程序,您可以查看 https://www.baeldung.com/spring-apache-camel-tutorial

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

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