3.2.2. 创建 Knative 频道

Knative 频道是一个转发事件的自定义资源。事件源或生成程序将事件发送到频道后,可使用订阅将这些事件发送到多个 Knative 服务或其他 sink。

本例使用 InMemoryChannel 频道,用于 OpenShift Serverless 进行开发。请注意,InMemoryChannel 类型频道有以下限制:

  • 没有可用的事件持久性。如果 Pod 停机,则 Pod 上的事件将会丢失。
  • InMemoryChannel 频道没有实现事件排序,因此同时接收到的两个事件可能会以任何顺序传送给订阅者。
  • 如果订阅者拒绝某个事件,则不会默认重新发送尝试。您可以通过修改 Subscription 对象中的 delivery 规格来配置重新发送尝试。

先决条件

  • OpenShift Serverless operator、Knative Eventing 和 Knative Serving 组件已安装在 OpenShift Container Platform 集群中。
  • 已安装 OpenShift Serverless CLI(kn)。
  • 您已创建了一个项目,或者具有适当的角色和权限访问项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。

流程

  1. 登录您的 OpenShift 集群。
  2. 打开您要在其中创建集成应用程序的项目。例如:

    oc project camel-k-knative

  3. 使用 Knative(kn)CLI 命令创建频道

    kn channel create <channel_name> --type <channel_type>

    例如,要创建一个名为 mychannel 的频道:

    kn channel create mychannel --type messaging.knative.dev:v1:InMemoryChannel

  4. 要确认频道现在存在,请输入以下命令列出所有现有频道:

    kn 频道列表

    您应该在列表中看到您的频道。