【问题标题】:What's the solace topic endpoint use case?什么是安慰主题端点用例?
【发布时间】:2018-11-11 07:43:11
【问题描述】:

我们知道 solace topic 只是消息属性,并且有符合 JMS 的主题端点,但根据我的测试(VMR 8.10.0.1092):

  1. 在 Solace 管理 UI 中,我们似乎无法像队列一样设置主题端点的订阅,是不是 solace 管理 UI 问题?
  2. 当我使用 solace JMS API 向 topic 发布消息时,如果此 topic 没有持久订阅(队列/主题端点),它将创建一个主题具有随机名称和订阅主题的端点,例如:
  3. 当我使用 solace JMS API 订阅主题“T/sampleTopic”时,它还会创建一个具有随机名称的非持久主题端点和名为 T/sampleTopic 的订阅主题。
  4. 当我使用 solace JMS API 订阅主题“T/sampleTopic”并将订阅持久化为 true 时,它​​还会创建一个具有默认名称的 durable 主题端点(org.springframework.jms.listener .adapter.MessagingMessageListenerAdapter) 和名为 T/sampleTopic 的订阅主题。
  5. 当我使用 solace JMS API 订阅主题“T/sampleTopic”并指定订阅持久为 true 并使用“T/sampleTopic”设置订阅名称时,它会报告错误:错误响应 (400) - 端点属性不匹配,在我删除原始主题端点“T/sampleTopic”并再次运行后,它会创建一个“预期”主题端点:

所以,我不知道如何通过 JMS API 使用 solace 主题端点。

【问题讨论】:

  • 根据我的测试,安慰主题端点应该类似于订阅名称。

标签: spring-jms solace


【解决方案1】:

主题端点是用于假脱机保证消息的两种端点之一。与队列不同,主题端点提供了一个入口选择器,但只能有一个主题订阅(允许使用通配符)。

  1. 没有。主题端点的订阅只能由应用程序而非 UI 管理。

  2. 仅当 JMS 应用程序使用 MessageConsumer 或持久订阅者时才会创建主题端点。与出版商无关。

  3. 听起来您正在使用订阅主题“T/sampleTopic”的 MessageConsumer。主题上的 MessageConsumers 在内部映射到非持久主题端点。

  4. 是的,这是意料之中的。持久订阅将在内部映射到持久主题端点。

  5. 听起来您在连接工厂中启用了“Dynamic Durables”,这会导致 Solace JMS API 创建端点。 “端点属性不匹配”表示 API 尝试创建的端点包含一个或多个与已存在的属性不匹配的属性。由于启用了“Dynamic Durables”,因此您应该将端点的创建留给 API。请注意,“Dynamic Durables”的默认设置是禁用的。

【讨论】:

  • 谢谢@Russell Sim!
  • 嗨,Russell Sim,检查了关于安慰的多个问题,你已经回答了关于安慰的问题。这很有用,但我对主题和队列中的主题感到困惑。我没有管理员权限,无法看到仅显示主题的队列。根据您的回答,主题似乎并非一直存在,每当消费者创建主题时,它就会被创建。但是如果消费者不存在,那么生产者将如何发送消息或生产者将获得异常。当我向队列添加订阅时,我可以在队列中看到消息,但无法理解主题的确切工作原理。你能帮忙吗?
猜你喜欢
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
相关资源
最近更新 更多