创建 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 集群运算符实例,而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 展示了将并行性设置为 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 存储库 中打开问题。