14.2. 创建代理集群
您可以通过在应加入集群的每个代理上配置集群连接来创建代理集群。集群连接定义了代理应该如何连接到其他代理。
您可以创建一个使用静态发现或动态发现的代理集群(UDP 多播或 JGroups)。
先决条件
您应该已经决定代理集群的大小。
如需更多信息,请参阅 第 14.1.6 节 “集群大小注意事项”。
14.2.1. 创建带有静态发现的代理集群
您可以通过指定代理的静态列表来创建代理集群。如果您无法在网络上使用 UDP 多播或 JGroups,请使用这个静态发现方法。
流程
-
打开
<broker_instance_dir>/etc/broker.xml
配置文件。 在
<core>
元素中,添加以下连接器:- 定义其他代理如何连接到这个连接器
- 一个或多个用来定义这个代理如何连接到集群中的其他代理的连接器
<configuration> <core> ... <connectors> <connector name="netty-connector">tcp://localhost:61617</connector> 1 <connector name="broker2">tcp://localhost:61618</connector> 2 <connector name="broker3">tcp://localhost:61619</connector> </connectors> ... </core> </configuration>
有关连接器的详情请参考 第 2.3 节 “关于连接器”。
添加集群连接并将其配置为使用静态发现。
默认情况下,集群连接将对对称拓扑中所有地址的消息进行负载均衡。
<configuration> <core> ... <cluster-connections> <cluster-connection name="my-cluster"> <connector-ref>netty-connector</connector-ref> <static-connectors> <connector-ref>broker2-connector</connector-ref> <connector-ref>broker3-connector</connector-ref> </static-connectors> </cluster-connection> </cluster-connections> ... </core> </configuration>
cluster-connection
-
使用
name
属性指定集群连接的名称。 connector-ref
- 定义其他代理如何连接到这个连接器的连接器。
static-connectors
- 此代理可用于与集群中的其他代理进行初始连接的一个或多个连接器。建立此初始连接后,代理将发现集群中的其他代理。只有在集群使用静态发现时,才需要配置此属性。
为集群连接配置任何附加属性。
这些额外的集群连接属性具有适合大多数常见用例的默认值。因此,当您不想默认行为时,您只需要配置这些属性。如需更多信息,请参阅 附录 C, 集群连接配置元素。
创建集群用户和密码。
AMQ Broker 附带默认集群凭证,但您应该更改这些凭证以防止未经授权的远程客户端使用这些默认凭证连接到代理。
重要群集密码必须在集群中的每个代理上都相同。
<configuration> <core> ... <cluster-user>cluster_user</cluster-user> <cluster-password>cluster_user_password</cluster-password> ... </core> </configuration>
对每个其他代理重复此步骤。
您可以将集群配置复制到每个额外代理中。但是,请勿复制任何其他 AMQ 代理数据文件(如绑定、日志和大型消息目录)。这些文件必须在群集中的节点之间唯一,否则群集无法正确组成。
其它资源
-
有关使用静态发现的代理集群示例,请参阅 clustered
-static-discovery
AMQ Broker 示例程序。