gpt4 book ai didi

java - JMX 连接和 session 处理

转载 作者:行者123 更新时间:2023-11-29 08:59:23 33 4
gpt4 key购买 nike

我目前正在构建一个基于 JMX 的监控工具。被监控的系统已经以发布/订阅的方式暴露了一些KPI,即自定义编码的监控客户端可以连接到系统,激活并订阅这些KPI,系统会在有新的KPI值可用时通知客户端.由于这些 KPI 的评估可能在计算上很昂贵,因此仅评估那些至少具有一个订阅客户端的 KPI。

我现在的任务是扩展系统,提供基于 JMX 和 JMX 通知的监控服务器,以便任何 JMX 客户端都可以激活、订阅和接收这些 KPI。

我面临的问题是:每个连接的客户端都会更改服务器上的某些状态(即激活 KPI 并注册一些监听器),一旦客户端 session 完成或由于连接丢失而失败,我需要立即清理这些状态。

关于 session JMX specification第 13.1 章中的状态:

A session has state on the client, notably its listeners (see Section 13.4 “Adding Remote Listeners” on page 208). A session does not necessarily have state on the server, and for the two connectors defined by this specification, it does not.

有谁知道允许维护某些 session 状态的 JMXConnectorServer 实现?任何实现此类服务器的代码示例、教程或指南也将受到高度赞赏。

最佳答案

也许你可以有类似 clientId 的东西,当你注册监听器时,你将 clientId 作为参数,这样服务器就会有一些客户端信息。

当客户端轻轻关闭时,可以调用JMX服务器清除监听的方法,或者如果客户端失去连接无法轻轻关闭,可以在客户端有一个监听线程它注册谁正在监听和关闭,并在必要时通知 JMX 服务器。

关于java - JMX 连接和 session 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460264/

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