使用JMS,Artemis和具有jdbc_ping的JGroups设置spring-boot应用程序

问题描述 投票:0回答:1

我已经在计算机上本地设置了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。

spring-boot spring-jms activemq-artemis jgroups
1个回答
0
投票

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");
}

在您的情况下,客户端将需要访问代理使用的同一数据库,以便使用该信息进行发现。

© www.soinside.com 2019 - 2024. All rights reserved.