首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMX RMI代理容错机制

JMX RMI代理容错机制
EN

Stack Overflow用户
提问于 2011-05-30 08:59:47
回答 1查看 716关注 0票数 3

我使用JMX-RMI代理进行消息传递。我有一个java程序,它向一组监听器/监听器发送一个带有名称/id的消息。根据监听器收到的消息,客户端程序表现良好,accordingly.This片段工作正常,但我想知道JMX RMI代理中内置了什么样的容错能力。

如果监听程序意外停止,JMX会重新启动它还是在某个地方记录错误,如果两端的消息队列都已满怎么办?任何解释JMX RMI的底层架构或内置容错机制的文档都将不胜感激。如果它没有任何容错机制,那么什么是一个好的方法呢?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-31 21:26:48

我假设您的客户端侦听器正在使用标准的javax.management.remote连接器。如果不进行一些定制,我会说您可以实现一些简单的故障检测。对于容错,您可能正在考虑某种集群解决方案。

您需要关注两个连接层:

  1. MBeanServerConnection本身。换句话说,如果整个服务器端JVM终止,您的客户端进程需要知道。
  2. 虽然服务器JVM和子MBeanServerConnection可能会继续可用,但“托管”、侦听器/客户端消息转发服务本身可能会终止。

对于#1,客户端进程可以使用addConnectionNotificationListener方法向JMXConnector注册NotificationListener。然后,您的本地连接将在以下所有事件中发出JMXConnectionNotification

  • 已打开新的客户端连接。
  • A客户端连接已关闭。
  • A客户端连接已失败unexpectedly.
  • A客户端连接可能丢失通知。此通知仅显示在客户端。

这样,您的客户端将知道何时建立了与服务器的连接以及何时断开。

对于#2,它更具体于您的应用程序,但也许您可以采用如下的简单模式:

当您的侦听器/转发器服务启动时,发出启动通知。当它停止时,发出一个停止的通知。注册这些通知的两类监听程序为:

停止客户端,这样它们就知道服务有started/stopped.

  • A服务器端的“
  1. ”,可以监听“停止”并重新启动服务。

这是或多或少你在想的吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6171440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档