跳至内容

创建 RabbitMQ Broker

本主题介绍如何创建 RabbitMQ Broker。

先决条件

  1. 您已安装 Knative Eventing。
  2. 您已安装 CertManager v1.5.4 - 与 RabbitMQ Messaging Topology Operator 集成最轻松
  3. 您已安装 RabbitMQ Messaging Topology Operator - 我们建议您使用与 CertManager 一起使用的 最新版本
  4. 您可以访问一个正在运行的 RabbitMQ 实例。您可以使用 RabbitMQ Cluster Kubernetes Operator 创建 RabbitMQ 实例。有关更多信息,请参阅 RabbitMQ 网站

安装 RabbitMQ 控制器

  1. 通过运行以下命令安装 RabbitMQ 控制器

    kubectl apply -f https://github.com/knative-extensions/eventing-rabbitmq/releases/download/knative-v1.16.0/rabbitmq-broker.yaml
    
  2. 验证 rabbitmq-broker-controllerrabbitmq-broker-webhook 是否正在运行

    kubectl get deployments.apps -n knative-eventing
    

    示例输出

    NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
    eventing-controller            1/1     1            1           10s
    eventing-webhook               1/1     1            1           9s
    rabbitmq-broker-controller     1/1     1            1           3s
    rabbitmq-broker-webhook        1/1     1            1           4s
    

创建 RabbitMQBrokerConfig 对象

  1. 使用以下模板创建 YAML 文件

    apiVersion: eventing.knative.dev/v1alpha1
    kind: RabbitmqBrokerConfig
    metadata:
      name: <rabbitmq-broker-config-name>
    spec:
      rabbitmqClusterReference:
        # Configure name if a RabbitMQ Cluster Operator is being used.
        name: <cluster-name>
        # Configure connectionSecret if an external RabbitMQ cluster is being used.
        connectionSecret:
          name: rabbitmq-secret-credentials
      queueType: quorum
    
    其中

    • 是您要为 RabbitMQBrokerConfig 对象指定的名称。
    • 是您之前创建的 RabbitMQ 集群的名称。

    注意

    您不能同时设置 nameconnectionSecret,因为 name 用于与 Broker 在同一集群中运行的 RabbitMQ 集群运算符实例,而 connectionSecret 用于外部 RabbitMQ 服务器。

  2. 通过运行以下命令应用 YAML 文件

    kubectl create -f <filename>
    
    其中 <filename> 是您在上一步中创建的文件的名称。

创建 RabbitMQBroker 对象

  1. 使用以下模板创建 YAML 文件

    apiVersion: eventing.knative.dev/v1
    kind: Broker
    metadata:
      annotations:
        eventing.knative.dev/broker.class: RabbitMQBroker
      name: <broker-name>
    spec:
      config:
        apiVersion: eventing.knative.dev/v1alpha1
        kind: RabbitmqBrokerConfig
        name: <rabbitmq-broker-config-name>
    
    其中 <rabbitmq-broker-config-name> 是您在上一步中为 RabbitMQBrokerConfig 指定的名称。

  2. 通过运行以下命令应用 YAML 文件

    kubectl apply -f <filename>
    
    其中 <filename> 是您在上一步中创建的文件的名称。

配置消息排序

默认情况下,触发器会一次消费一条消息以保留排序。如果事件的排序并不重要,而需要更高的性能,则可以使用 parallelism 注释进行配置。将 parallelism 设置为 n 将为触发器创建 n 个工作程序,这些工作程序将并行消费消息。

以下 YAML 展示了将并行性设置为 10 的触发器的示例

apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: high-throughput-trigger
  annotations:
    rabbitmq.eventing.knative.dev/parallelism: "10"
...

其他信息

我们使用分析和 Cookie 来了解网站流量。关于您使用我们网站的信息将与 Google 共享,用于此目的。 了解更多。