跳到內容

建立 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 Cluster Operator 實例,而 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 顯示將 parallelism 設定為 10 的觸發器範例

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

其他資訊

我們使用分析和 Cookie 來瞭解網站流量。您使用我們網站的相關資訊會與 Google 分享以達到此目的。瞭解更多。