2

我有五个独立的 java进程;它们作为业务逻辑模块运行。如果我可以启动/ping/monitor/message子进程,我想开发我的进程管理应用程序。

此外,它可能会通过 rest-ws 或最坏情况下的 rmi 调用与子进程共享缓存等资源,因为这需要额外的开销。

我倾向于基于 webservice 的 api,它将不断发送有关在进程中运行的业务逻辑的信息。这些流程可以是数据搅动、计算、通知流程引擎。

有任何想法吗?

4

1 回答 1

1

一种选择是使用 JMX,并发布一个或多个 MBean。Oracle 有关于它的文档。您可以使用来自进程的请求信息,或者向它们发送信号以改变它们的行为。

您将要做的基本框架是决定您需要在每个子进程中远程公开哪些方法。他们每个人都应该用这些方法定义一个接口,然后是该接口的一个实现。然后这些实现需要在MBeanServer.

这种方法的优点是您将立即获得一个简单的“管理应用程序”,因为您可以针对您的流程打开 JConsole 并使用 MBean。如果您希望创建一个单独的应用程序来更清晰地呈现您的数据,您可以在闲暇时这样做,而无需更改子进程。

无论如何,这种方法并不能真正让您“共享缓存”,但在进程(或机器)之间共享缓存确实应该是一个单独的问题(我认为)。

于 2013-01-31T21:36:56.903 回答