gpt4 book ai didi

java - ActiveMQ 中的主题创建

转载 作者:行者123 更新时间:2023-11-29 07:13:41 24 4
gpt4 key购买 nike

http://docs.oracle.com/javaee/1.4/api/javax/jms/Session.html#createTopic(java.lang.String )此 API 说明 session.createTopic(topicname) 不是用于创建物理主题。这是什么意思?

如果我想让一组具有“admin”权限的用户负责创建主题,另一组具有“write”权限的用户负责向该主题发布消息,我该如何实现?看来后一组也必须有“admin”的权限,因为他们必须使用这个方法:session.createTopic(topicname)

如何分离“admin”和“write”权限?

最佳答案

JMS 规范的意思是 createTopic(String) 用于为您提供逻辑句柄(javax.jms.Topic,Destination 的子类型),您随后可以在其他调用中使用它,例如 createProducer(Destination) 或 createConsumer (目的地)。 a physical destination will be created at the same time 在 ActiveMQ 中就这样发生了.

如果您想确保用户只能发布到已创建的目的地,请为该组分配读写权限,而不是管理员。显然,假设这些主题已经存在 - 如果它们不存在,那么您将抛出异常。

您还没有明确说明您希望如何管理主题创建,但如果您愿意在 ActiveMQ 配置中执行此操作,那么它们将是 created at startup ,然后在目标 block 中定义这些主题:

<broker xmlns="http://activemq.apache.org/schema/core">
<destinations>
<topic physicalName="topic.1" />
<topic physicalName="topic.2" />
</destinations>
</broker>

关于java - ActiveMQ 中的主题创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11534136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com