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

设置ActiveMQ Artemis路由类型,Spring Boot JmsListener为客户端

谯皓君
2023-03-14
@JmsListener(destination="price.address::price.2.queue", selector="JMSType='test'")
public void testReceiver1(String msg) {
    System.out.println("1 " + msg); 
}
@JmsListener(destination="price.address::price.2.queue")
public void testReceiver2(String msg) {
    System.out.println("2 " + msg); 
}

理想情况下,这两个客户机/监听器应该能够使用anycast订阅,因此其中一个或两个都可以指定选择器并获取这些消息。

但是当它们连接时,就会创建选播队列。所以我尝试将地址添加到我的经纪人中,如下所示:

  <addresses>
    <address name="price.address">
            <multicast/>
    </address>
  </addresses>

这似乎什么也没起作用。将创建选播队列。

我还尝试将两个侦听器都设置为直接指向主题/地址(不使用FQQN),但仍然会出现一个选播路由类型--一个名为“price.address”的队列。

我不确定所有这些数据最终将如何使用,所以我试图尽可能灵活地提供。我知道大部分根本用不上,至少一时半会儿用不上。

我有另一个项目,其中大部分传入数据没有使用。我设置了一个地址和显式队列,并为此设置了过滤器,每个需要过滤数据的客户机都有一个。这很好,但现在的不同之处在于,我需要客户机能够连接并指定筛选器(选择器)以获取所需的数据,并且只接收新的传入消息。

我不确定这是JMS客户机的Artemis问题还是Sprint Boot@JMSListener问题。

Artemis 2.17 Spring Boot 2.5

共有1个答案

宦子琪
2023-03-14

假设您希望客户端能够连接并且:

  • 为所需数据指定选择器
  • 只接收新传入的消息

这意味着您希望使用JMS主题。

 类似资料:
  • 说明: callback Gateway::$router 设置Gateway到BusinessWorker路由规则。默认规则是Gateway随机选择一个BusinessWorker进程,然后把当前client_id与这个BusinessWorker进程绑定,以后这个client_id的所有数据(onConnect/onMessage/onClose事件)都交给这个绑定的BusinessWorke

  • 什么是路由设置呢?前面介绍的 MVC 结构执行时,介绍过 beego 存在三种方式的路由:固定路由、正则路由、自动路由,接下来详细的讲解如何使用这三种路由。 基础路由 从 beego 1.2 版本开始支持了基本的 RESTful 函数式路由,应用中的大多数路由都会定义在 routers/router.go 文件中。最简单的 beego 路由由 URI 和闭包函数组成。 基本 GET 路由 beeg

  • 自定义成菜单 说明: 1)启用该功能后,直播客户端可以通过自定义菜单的方式加载用户自定义的网页,方便结合自身业务进行交互操作(客户端5.0.0以上版本支持) 问卷设置 说明: 1)在直播管理页面点击 “问卷设置”,启用该功能后,直播客户端可以通过接口请求的方式将用户问卷库中的问卷导入到客户端中使用 2)关于问卷设置的具体功能及使用方法,请参考:问卷接口开发指南 菜单设置 说明: 1)支持对客户端的

  • 问题内容: 我正在尝试设置HTTP客户端,以便它使用代理,但是我不太明白该怎么做。该文档有多个对“代理”的引用,但是似乎没有一个功能允许定义代理。我需要的是这样的: 知道如何在Go中执行此操作吗? 问题答案: lukad是正确的,您可以设置环境变量,如果这样做,Go将默认使用它。 重击: 走: 您还可以构造自己的http.Client,无论环境如何配置,该客户端都必须使用代理: 如果您不能依赖环境

  • 我的示例Jersey客户端代码是 我一直在尝试这个代码变体,从上一个星期以来,它是不工作的。在这方面的任何帮助都是高度赞赏的。

  • 根据客户端与授权服务器安全地进行身份验证的能力(即维护客户端凭据机密性的能力),OAuth定义了两种客户端类型: 机密客户端 能够维持其凭据机密性(如客户端执行在具有对客户端凭据有限访问权限的安全的服务器上),或者能够使用 其他方式保证客户端身份验证的安全性。 公开客户端 不能够维持其凭据的机密性(如客户端执行在由资源所有者使用的设备上,例如已安装的本地应用程序或基于Web浏览器的应用),且不能通