16.2. 创建代理集群
您可以通过在应该参与到集群的每个代理上配置集群连接来创建代理集群。集群连接定义了代理应如何连接到其他代理。
您可以创建使用静态发现或动态发现(UDP 多播或 JGroups)的代理集群。
先决条件
您应该已决定代理集群的大小。
如需更多信息,请参阅 第 16.1.6 节 “集群大小注意事项”。
16.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.2 节 “关于连接器”。
添加集群连接并把它配置为使用静态发现。
默认情况下,集群连接将加载对称拓扑中所有地址的消息。
<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, Cluster Connection Configuration 元素。
创建集群用户和密码。
AMQ Broker 附带默认集群凭证,但您应该更改它们以防止未授权的远程客户端使用这些默认凭证来连接代理。
重要集群密码必须与集群中的每个代理相同。
<configuration> <core> ... <cluster-user>cluster_user</cluster-user> <cluster-password>cluster_user_password</cluster-password> ... </core> </configuration>
在每个额外代理上重复此步骤。
您可以将集群配置复制到每个额外代理中。但是,不要复制其他 AMQ Broker 数据文件(如绑定、日志和大型消息目录)。这些文件在集群中的节点之间必须是唯一的,否则集群无法正确表单。
其他资源
-
有关使用静态发现的代理集群示例,请参阅 cluster
-static-discovery
AMQ Broker 示例程序。