【问题标题】:Priority of ActiveMQ configuration via URI通过 URI 配置 ActiveMQ 的优先级
【发布时间】:2015-03-10 04:26:49
【问题描述】:

我有几个关于 ActiveMQ 配置和优先级的类似领域的问题。我目前正在配置一个 ActiveMQ 代理来关闭消息持久性。

根据我知道可以通过以下代理配置实现的文档:

  • xml配置文件()
  • 客户端的 URI (tcp://localhost:61616?persistent=false)
  • 代理端的 URI - xml 配置文件 (tcp://localhost:61616?persistent=false)。

我的第一个问题是,当我在代理端的 URI 中设置 persistence=false 但客户端将使用 URI persistence=true 连接时会发生什么?

如果我设置但在代理端的 URI 中我提供了 persistent=false 并且客户端在连接时不会提供任何其他设置会发生什么?

关于 connectionTimeout 或 maximumConnections 参数的类似问题。根据文档 (http://activemq.apache.org/tcp-transport-reference.html),它“可以在 JMS 客户端的连接 URI 字符串或 Brokers 传输绑定 URI 上进行配置”。如果代理方和客户端有不同的设置怎么办?如果两个客户端使用不同的设置连接怎么办?可能 connectionTimeout 可能仅与一个特定连接相关(当客户端提供此参数时),但我看不出 maximumConnections 对每个连接有何意义。

从安全角度来看,我的理解是,当我将服务器/代理端的最大连接数限制为 100 时,不应允许客户端增加该数量。

【问题讨论】:

    标签: java activemq


    【解决方案1】:

    实际上,Broker 上的持久性仅在 XML 配置或嵌入式 Broker 的配置中受到控制,传输连接器无法控制这一点,客户端也无法更改这一点。

    至于仅基于 TransportConnector 的连接配置,因此设置允许的最大连接数等这些值不能由客户端更改,如果是这样,那将是非常糟糕的。客户端设置只影响客户端的行为,而不影响代理。如果您将代理的 TCP 传输连接器配置的最大值设置为 100,那么在任何给定时间将只允许 100 个客户端,并且没有客户端可以更改它。

    【讨论】:

    • 那么是否意味着在客户端或代理端的uri上设置persistence=false没有效果?
    • 就是这个意思,没有这个选项。
    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 2011-12-06
    • 2015-12-27
    • 1970-01-01
    相关资源
    最近更新 更多