当前位置: 首页 > 知识库问答 >
问题:

如何在spring boot中配置多个solace队列

谯阳伯
2023-03-14

我正在尝试使用以下代码在Spring Boot应用程序中配置多个SOLACE队列:

@Configuration
public class JmsConfig {

@Bean(name="queue1")
@Primary
@ConfigurationProperties(prefix="spring.jta.bitronix.connectionfactory.queue1"
public ConnectionFactory queue1ConnectionFactory() {
    return new PoolingConnectionFactoryBean();
}

@Bean(name="queue2")
@ConfigurationProperties(prefix="spring.jta.bitronix.connectionfactory.queue2")
public ConnectionFactory queue2ConnectionFactory() {
    return new PoolingConnectionFactoryBean();
}

}

下面是我尝试给属性的方式:

spring.jta.bitronix.connectionfactory.queue1.class-name=com.solacesystems.jms.SolXAConnectionFactoryImpl
spring.jta.bitronix.connectionfactory.queue1.driverProperties.host=<<hostURL1>>
spring.jta.bitronix.connectionfactory.queue1.driverProperties.VPN=<<VPN1>>
spring.jta.bitronix.connectionfactory.queue1.driverProperties.authentication-scheme=AUTHENTICATION_SCHEME_GSS_KRB
spring.jta.bitronix.connectionfactory.queue1.driverProperties.KRBServiceName=HOST


spring.jta.bitronix.connectionfactory.queue2.class-name=com.solacesystems.jms.SolXAConnectionFactoryImpl
spring.jta.bitronix.connectionfactory.queue2.driverProperties.host=<<hostURL2>>
spring.jta.bitronix.connectionfactory.queue2.driverProperties.VPN=<<VPN2>>
spring.jta.bitronix.connectionfactory.queue2.driverProperties.authentication-scheme=AUTHENTICATION_SCHEME_GSS_KRB
spring.jta.bitronix.connectionfactory.queue2.driverProperties.KRBServiceName=HOST

任何指针都会很有帮助

共有1个答案

梁承恩
2023-03-14

如果您的目标是发送到同一代理上的多个队列,则不需要指定多个连接工厂。Solace支持Spring Autoconfig for JMS,因此您可以自动连接JmsTemplate,然后使用convertAndSend方法将消息发送到不同的队列。

这里的示例显示了发送到一个队列,但每次调用convertAndSend时,都可以使用不同的字符串作为队列名。https://github.com/mrc0113/solace-samples-spring/blob/master/spring-boot-autoconfig-sender/src/main/java/com/solace/samples/spring/boot/springbootsender.java

注意,这段代码没有创建队列,因此它必须已经存在于代理上。

 类似资料:
  • 我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样:

  • 问题内容: 我正在使用EJB 3.1,并且想配置一个MDB来侦听多个队列。 我更喜欢通过XML定义队列名称,而其他通过注释定义。 能做到吗? 问题答案: 实例化后,MDB只能侦听在其目标ActivationConfigProperty中指定的资源,但是您 可以 为同一MDB创建具有不同目标的多个实例(在您的情况下为队列)。 在ejb-jar.xml中创建两个条目,它们具有不同的目的地和ejb-na

  • 我们有一个私人库伯内特集群。我们正在尝试按照这些快速入门说明安装Solace。https://github.com/solaceproducts/solace-kubernetes-quickstart solace helm海图安装步骤如下: 快速的堆栈搜索似乎表明这是因为loadbalancer希望在云内部使用外部负载均衡器: kubernetes服务外部ip挂起 此外,其中一个答案建议在使用

  • 我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni

  • 我在SpringBoot应用程序中实现了多语言,在完成以下配置后,我得到的属性文件无法加载 文件夹名称 src/main/resources/i18n/messages 属性文件名 messages_us.properties 在应用程序主类 内部控制器 标题 接受-语言:我们 我明白了 [36mo.s.c.s.ResourceBundleMessageSource[0;39m[2m:[0;39m

  • 我有一个RabbitMQ代理,它设置了多个队列。在客户端(Java ),我有多个消费者,他们都像这样监听他们的队列: 队列_1- 它们都使用一个连接但不同的通道。发生的情况是,当我加载所有队列并启动应用程序代理服务时,首先服务一个队列,而不是另一个队列,依此类推。因此,消息一次由各自的消费者一个队列接收。我还想提一下,我正在使用预取计数1来实现消费者流量的公平分配。 我怎样才能让它发生,让所有的队