建立 RabbitMQ Broker¶
本主題說明如何建立 RabbitMQ Broker。
先決條件¶
- 您已安裝 Knative Eventing。
- 您已安裝 CertManager v1.5.4 - 與 RabbitMQ Messaging Topology Operator 最容易整合
- 您已安裝 RabbitMQ Messaging Topology Operator - 我們建議使用 最新版本 搭配 CertManager
- 您有權存取可用的 RabbitMQ 實例。您可以使用 RabbitMQ Cluster Kubernetes Operator 來建立 RabbitMQ 實例。如需更多資訊,請參閱 RabbitMQ 網站。
安裝 RabbitMQ 控制器¶
-
執行命令來安裝 RabbitMQ 控制器
kubectl apply -f https://github.com/knative-extensions/eventing-rabbitmq/releases/download/knative-v1.16.0/rabbitmq-broker.yaml
-
驗證
rabbitmq-broker-controller
和rabbitmq-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 物件¶
-
使用以下範本建立 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 叢集名稱。
注意
您不能同時設定
name
和connectionSecret
,因為name
是用於與 Broker 在同一叢集中執行的 RabbitMQ Cluster Operator 實例,而connectionSecret
是用於外部 RabbitMQ 伺服器。 -
執行命令來套用 YAML 檔案
其中kubectl create -f <filename>
<filename>
是您在上一步建立的檔案名稱。
建立 RabbitMQBroker 物件¶
-
使用以下範本建立 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 提供的名稱。 -
執行命令來套用 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"
...
其他資訊¶
- 如需更多範例,請瀏覽
eventing-rabbitmq
Github 儲存庫範例目錄 - 若要回報錯誤或要求功能,請在
eventing-rabbitmq
Github 儲存庫中開啟一個問題。