我已经在计算机上本地设置了Artemis HA-Custer示例,以了解其基本工作原理。现在,我想准备将其推送到kubernetes集群中。因此,我想更改代理节点的初始成员资格发现方式,以便也可以在云中使用它。我想将JMS和JGroups与“ jdbc_ping”一起使用。其实我不确定,如果我做对了,也许你可以告诉我是否。
到目前为止,经纪人已经成功地将其信息放入db表中,并且显然已建立连接。当我从Java应用程序尝试以下connectionFactory时,它启动时没有错误,并与代理连接。但在某些方面,我不确定它是否能正确执行。
@Bean
public ConnectionFactory connectionFactory() {
TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getName());
ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithHA(JMSFactoryType.CF, transportConfiguration);
return cf;
}
因此,唯一的问题是,如何正确设置connectionFactory以正确使用JGroups。
ActiveMQ Artemis documentation涉及此:
最后,支持
jgroups
方案,它为服务器发现提供了udp
方案的替代方案。 URL模式为jgroups://channelName?file=jgroups-xml-conf-filename
,其中jgroups-xml-conf-filename
引用类路径中包含JGroups配置的XML文件,也可以为jgroups://channelName?properties=some-jgroups-properties
。在这两种情况下,channelName
都是创建的jgroups通道的名称。
在您的代码中,您可以执行以下操作:
@Bean
public ConnectionFactory connectionFactory() {
return new ActiveMQConnectionFactory("jgroups://channelName?file=jgroups-xml-conf-filename");
}
在您的情况下,客户端将需要访问代理使用的同一数据库,以便使用该信息进行发现。