Apache Camel K 1.0 为基于Kubernetes或Serverless的微服务提供集成功能 - davsclaus

20-06-14 banq

Apache Camel K 1.0 为开发人员提供了集成基于Java的服务的工具和手段,这些服务来源很广:既可以是无服务器又可以是函数的,并使用标准Kubernetes构建块运行,您只需使用集成路径编写一个文件,即可立即在任何Kubernetes集群上运行它们。

集成工具团队为VS Code创建了一些很酷的扩展,这些扩展使Camel K的开发经验更加令人兴奋。您无需记住Camel DSL语法,IDE会为您提供建议和错误突出显示。只需安装适用于Apache Camel的VS Code Extension Pack,  即可使用所有这些功能。

要在Camel K中启用无服务器配置文件,您只需要确认Knative已安装。在最新版本中,增加了对Knative最新进展的支持,例如Camel K与Knative事件代理很好地集成在一起,您可以轻松地从中生成或使用事件。

使用两行代码,您可以将事件(例如,由IoT设备生成的事件)从MQTT代理集成转发到服务网格上:bridge.groovy

from('paho:mytopic?brokerUrl=tcp://broker-address:1883&clientId=knative-bridge')
  .to('knative:event/device-event')

此集成配置为接收所有带有`type = device-event`的事件并自动缩放负载,因为它已具体化为Knative Serving Service,  并通过触发器自动订阅了Eventing Broker

当您的物联网设备产生某些事件时将发生CloudEvent,如果没有数据,则将其规模缩小为零。您只需要创建它(就像以前一样,只需kamel运行listener.groovy即可),其余所有配置都由Camel K操作员自动完成。

添加了更多功能以更好地与Knative生态系统集成,并且还修复了以前版本中存在的一些兼容性和性能问题。现在,用户体验更加流畅。

如果您是Knative YAML开发人员(!),则可以直接使用Cnative Camel Sources,而不是直接使用Camel K这是Knative版本的一部分。它们是Camel K集成的包装,与Knative开发人员使用的所有工具(例如kn CLI或OpenShift无服务器控制台)兼容。Knative中的源只能将数据推送到各个Knative端点中,而不能反过来(即,它们不能用于将数据从Knative发布到外部)。在Camel K中,您没有此限制:Route是Camel集成的基本组成部分,您可以使用它来做任何想做的事情。

在Camel K 1.0.0中,我们在JVM模式下支持Camel Quarkus。我们的目标是在下一版本中尽快提供集群内本机编译(对于某些DSL语言,例如YAML)!

要将Quarkus用作基础运行时,您只需在运行集成时启用Quarkus特性

kamel run myintegration.groovy -t quarkus.enabled = true

预期Quarkus将在下一发行版中成为默认的基础运行时,并且将弃用并删除对Standalone模式(通过camel-main)的支持。这意味着您不需要在下一版本中手动启用Quarkus,但仍需要在1.0中启用。

每个在Kubernetes上运行的应用程序都需要打包在一个容器镜像中,但是在Camel K中,您仅提供集成DSL,并且它会自动执行该操作,包括直接在集群中构建镜像。

现在可以在Minikube等开发环境中以秒为单位测量构建时间。大部分时间都是一秒钟。这不仅仅是简单的改进!

Camel K提供了许多有用的工具来增加您的集成途径的可视性。

其他更多特性点击标题见原文。

 

                   

1
猜你喜欢