2

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

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

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

4

1 回答 1

1

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"]

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

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

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

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

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

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

于 2020-05-14T02:34:14.480 回答