Apache Camel K 1.0 為基於Kubernetes或Serverless的微服務提供整合功能 - davsclaus

banq發表於2020-06-14

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提供了許多有用的工具來增加您的整合途徑的可視性。

其他更多特性點選標題見原文。

 

相關文章