本教程是 Apache****Camel K 的快速入门介绍。什么是 Apache Camel K?简而言之,Apache Camel K 是一个基于 Apache Camel 构建的轻量级集成框架,它在 Kubernetes 上原生运行,专为无服务器和微服务架构而设计。
Camel K 的想法非常简单:让开发人员在 Kubernetes 上原生使用企业集成模式 (EIP),并使用强大的 Camel DSL 来表达它们。由于 Camel K 需要使用 Kubernetes,我们将使用 minikube 进行测试(它与 OpenShift 相同)。
安装 Minikube 的详细过程在:https://minikube.sigs.k8s.io/docs/start/
第一步,启动 minikube:
$ minikube start
随着 Minikube 的运行,下一步是部署注册表。
$ minikube addons enable registry
要开始使用 Camel K,您需要“kamel” shell 工具,该工具可在最新版本的 camel-k-client 工具的发布页面中找到:https://github.com/apache/camel-k/releases
下载并解压缩存档。并将二进制文件“kamel”放在系统路径中。例如,在 /usr/bin 中。
现在,您可以继续安装:
$ kamel install
安装完成后,您应该会在 Kubernetes 的 pod 中看到 camel-k 操作符:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
camel-k-operator-57bbcbd6dc-ndqj5 1/1 Running 0 6m34s
https://github.com/apache/camel-k/releases 中有很多可用的示例。例如,让我们运行一下 Sample.java
import org.apache.camel.builder.RouteBuilder;
public class Sample extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:tick").log("Hello Camel K!");
}
}
为了运行这个示例骆驼路线,您可以使用“运行”选项。我们还将添加“–dev”标志以允许实时重新加载代码:
$ kamel run Sample.java --dev
骆驼之路即将开始:
[1] 2021-01-20 08:35:56,508 INFO [io.quarkus] (main) camel-k-integration 1.3.0 on JVM (powered by Quarkus 1.10.3.Final) started in 2.123s. [1] 2021-01-20 08:35:56,509 INFO [io.quarkus] (main) Profile prod activated. [1] 2021-01-20 08:35:56,511 INFO [io.quarkus] (main) Installed features: [camel-bean, camel-core, camel-endpointdsl, camel-k-core, camel-k-loader-java, camel-k-runtime, camel-main, camel-support-common, camel-timer, cdi] [1] 2021-01-20 08:35:57,516 INFO [route1] (Camel (camel-1) thread #0 - timer://tick) Hello Camel K!
请注意,您不需要在文件夹中指定任何依赖项规范,Camel K 会计算出来,并在构建过程中注入它。所以你只需要编写你的应用程序。
此外,由于我们在开发模式下运行,这允许用户以增量方式创建集成并立即进行“无构建”重新部署。例如,仅更改示例类中的日志消息:
public void configure() throws Exception {
from("timer:tick").log("Hello Camel K just changed!");
}
当您保存代码时,应用程序将自动更新:
[1] 2021-01-20 08:43:49,811 INFO [route1] (Camel (camel-1) thread #0 - timer://tick) Hello Camel K just changed!
我们可以更加冒险,我们将使用一个属性文件来定义消息的内容。让我们编辑一个名为 sample.properties 的文件来包含这个内容:
message=Hello World from Camel K!
并相应地更改 Sample.java 类:
import org.apache.camel.builder.RouteBuilder;
public class Sample extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:tick").log("{{message}}");
}
}
为了使用外部属性文件,只需在启动时添加选项–property-file:
$ kamel run Sample.java --property-file sample.properties --dev
这是您的原始日志消息:
[1] 2021-01-20 08:48:29,496 INFO [route1] (Camel (camel-1) thread #0 - timer://tick) Hello World from Camel K!
Camel-K 不仅适用于 java。支持其他几种语言,例如:
看看 hello.groovy 的例子:
from("timer:tick?period=3s")
.setBody().constant("Hello from Camel K in Groovy!!!")
.to("log:message")
如您所见,代码更加简洁。要运行 Groovy 示例,您可以使用相同的命令行选项:
$ kamel run hello.groovy --dev
就是这样:
INFO [message] (Camel (camel-1) thread #0 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello from Camel K in Groovy!!!]
我们只是简单地介绍了一些 Camel-K 快速入门。这是一个关于集成代码如何立即在云中运行的示例。不需要其他任何东西!查看 Camel-K 文档以了解更多信息:https://camel.apache.org/camel-k/latest/index.html
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : http://www.masterspringboot.com/various/camel/getting-started-with-camel-k-tutorial
内容来源于网络,如有侵权,请联系作者删除!