想象一下下一个架构:
您对实施此类事项有何建议?请提供一些框架或开放源代码的指出,以解决类似问题或根据您的经验进行一些一般性考虑。
[更新]
答案 0 :(得分:1)
我最初的想法不是管理/监控方面,而是使用Java管理器在您的一台计算机上启动2,000个不同的进程。这些消耗多少内存?它们同时运行吗?如果它们是不同的实现,则机器可以使用共享库等来减少内存消耗。
然后Java进程必须读取/处理进程stdout / stderr(通常你在每个流的一个线程中执行此操作,以防止阻塞 - 如果你有2,000个进程使用这个机制,那么你正在查看4000个线程)。
因此,在考虑可管理性之前,我最初会考虑这种架构,并在多台计算机和虚拟机上进行扩展。
要获取CPU /内存等,我会查看JMX和提供的bean。 JMX提供了通过RMI等公开这些数据的方法。但是为了获得每个子进程(用你的说法中的容器)的这些信息,将需要特定于操作系统的信息。你在用什么操作系统?对于Windows,请查看WMI。在Unix / Linux上,各种/proc
文件系统节点可以为您提供帮助。
答案 1 :(得分:1)
也许你可以在Nagios页面上找到有用的东西(http://www.nagios.org/)