4.7. 为客户端连接配置基于 Operator 的代理部署
4.7.1. 配置接收器 复制链接链接已复制到粘贴板!
要在 OpenShift 部署中启用与代理 Pod 的客户端连接,您可以为部署定义 接收器。接收器定义代理 Pod 如何接受连接。您可以在用于代理部署的主自定义资源(CR)中定义接收器。在创建接收器时,您可以指定要在接收器上启用的消息协议,以及用于这些协议的代理 Pod 上的端口。
以下流程演示了如何在 CR 中为您的代理部署定义新的接收器。
先决条件
- 要配置接收器,代理部署必须基于 AMQ Broker Operator 版本 0.9 或以上。有关安装 Operator 最新版本的详情请参考 第 3.2 节 “使用 CLI 安装 Operator”。
流程
-
在您在初始安装过程中下载并提取的 Operator 存档的
deploy/crs目录中,打开broker_activemqartemis_cr.yaml自定义资源(CR)文件。 在
acceptors元素中,添加命名的 acceptor。添加协议和端口参数。设置值以指定要由接收器使用的消息传递协议,以及要为这些协议公开的每个代理 Pod 上的端口。例如:spec: ... acceptors: - name: my-acceptor protocols: amqp port: 5672 ...配置的接收器将端口 5672 公开给 AMQP 客户端。表中显示了您可以为 protocol 参数
指定的完整值集。Expand 协议 值 核心协议
coreAMQP
amqpOpenWire
openwireMQTT
mqttSTOMP
stomp所有支持的协议
all注意- 对于部署中的每个代理 Pod,Operator 还会创建一个使用端口 61616 的默认接收器。代理集群需要这个默认接收器,并启用了内核协议。
- 默认情况下,AMQ 代理管理控制台在代理 Pod 上使用端口 8161。部署中的每个代理 Pod 都有专用服务,提供对控制台的访问。如需更多信息,请参阅 第 5 章 连接到基于 Operator 的代理部署的 AMQ 管理控制台。
若要在同一接收器上使用其他
协议,请修改 protocol 参数。指定以逗号分隔的协议列表。例如:spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 ...配置的接收器现在向 AMQP 和 OpenWire 客户端公开端口 5672。
要指定接收器允许的并发客户端连接数量,请添加
connectionAllowed参数并设置一个值。例如:spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 connectionsAllowed: 5 ...默认情况下,接收器仅公开给与代理部署相同的 OpenShift 集群中的客户端。若要同时将接收器公开给 OpenShift 之外的客户端,可添加
expose参数,并将值设为true。spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 connectionsAllowed: 5 expose: true ... ...当您向 OpenShift 外的客户端公开接收器时,Operator 会自动为部署中的每个代理 Pod 创建专用服务和路由。
若要启用来自 OpenShift 外部客户端的安全连接,可添加
sslEnabled参数,并将值设为true。spec: ... acceptors: - name: my-acceptor protocols: amqp,openwire port: 5672 connectionsAllowed: 5 expose: true sslEnabled: true ... ...当您在接收器(或连接器)上启用 SSL(即安全套接字层)安全性时,您可以添加相关配置,例如:
- 用于在 OpenShift 集群中存储身份验证凭据的机密名称。当您在接收器上启用 SSL 时,需要一个 secret。有关生成此 secret 的详情请参考 第 4.7.2 节 “保护 broker-client 连接”。
-
用于安全网络通信的传输层安全(TLS)协议。TLS 是更新的、更安全的 SSL 版本。您可以在
enabledProtocols参数中指定 TLS 协议。 -
接收器是否在代理和客户端之间使用双向 TLS(也称为 互相身份验证 )。您可以通过将 require
ClientAuth参数的值设置为true来指定此值。
其它资源
- 要了解如何配置 TLS 来保护代理-客户端连接的安全,包括生成 secret 来存储身份验证凭证,请参阅 第 4.7.2 节 “保护 broker-client 连接”。
- 有关完整的自定义资源配置参考,包括配置接收器和连接器,请参阅 第 8.1 节 “自定义资源配置参考”。