创建 RabbitMQ Broker¶
本节介绍如何创建 RabbitMQ Broker。
先决条件¶
- 您已经安装了 knative 事件
- 已安装CertManager v1.5.4 - 与 RabbitMQ 消息拓扑操作符最简单的集成
- 您已经安装RabbitMQ 消息传递拓扑操作符 - 我们的建议是使用 CertManager 的最新版本
- 你可以访问一个正在工作的 RabbitMQ 实例。你可以使用RabbitMQ 集群 Kubernetes 操作符来创建一个 RabbitMQ 实例。更多信息请参见RabbitMQ 网站.
安装 RabbitMQ 控制器¶
- 运行命令安装 RabbitMQ 控制器:
kubectl apply -f https://storage.googleapis.com/knative-nightly/eventing-rabbitmq/latest/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
在哪里:
<rabbitmq-broker-config-name>
是你想要的 RabbitMQBrokerConfig 对象的名称。<cluster-name>
是之前创建的 RabbitMQ 集群的名称。
Note
你不能同时设置
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: rabbitmq.com/v1beta1 kind: RabbitmqBrokerConfig name: <rabbitmq-broker-config-name>
其中
<rabbitmq-broker-config-name>
是你在上面步骤中给你的 RabbitMQBrokerConfig 的名称。 -
运行以下命令应用 YAML 文件:
kubectl apply -f <filename>
其中
<filename>
是您在上一步中创建的文件的名称。
配置消息排序¶
默认情况下,触发器每次使用一条消息以保持顺序。
如果事件的顺序并不重要,并且希望获得更高的性能,那么可以通过使用parallelism
注释来配置。
将parallelism
设置为n
为触发器创建n
个 worker,这些 worker 都将并行使用消息。
下面的 YAML 显示了一个并行度设置为10
的触发器示例:
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
name: high-throughput-trigger
annotations:
rabbitmq.eventing.knative.dev/parallelism: "10"
额外的信息¶
- 更多示例请访问
eventing-rabbitmq
Github 库示例目录 - 要报告一个 bug 或请求一个特性,在
eventing-rabbitmq
Github 存储库中打开一个问题.