这是一个相当高级的问题,如果偏离主题,我们深表歉意。我是企业 Java 世界的新手。
假设我已经编写了一些单独的 Java 包来执行解析数据馈送并将解析的信息存储到队列等操作。另一个包可能会从该队列中读取并将这些条目摄取到规则引擎包中。跳闸警报被送入另一个队列,该队列由警报服务(假设它是用 Python 编写的)轮询,该服务从队列中读取并发出电子邮件。
就目前而言,我必须手动运行每个 jar 文件并将其粘贴在后台。虽然我可能可以守护部分或所有这些服务以实现弹性,或者编写某种服务管理器来做同样的事情,但这让我觉得非常业余。特别是因为我必须在启动时为这个单一工作流程启动十几个服务。
感觉自己好像少了点什么,又不知道自己不知道什么。除了编写一个庞大的整体应用程序之外,我应该研究什么来帮助我管理所有这些离散组件并能够(概念上)交付一个整体应用程序?我想最终得到某种虚拟机管理程序,我可以在其中单击一个按钮,它会启动/停止所有上述服务,让我了解它们的状态并确保服务在它们应该运行的时候运行。
这是框架发挥作用的地方吗?我看到了其中的一些,但不知道这是否只是矫枉过正,特别是如果我没有积极地为该框架开发解决方案。
最佳答案
您似乎用很多组件构建了一个系统,然后过了一段时间您决定聚合其中的一些组件,因为它们碰巧共享相同的编程语言:Java。因此,首先要发出警告:这不是将组件连接在一起的最佳方式。
此外,您似乎不太了解 Java,因为您混合使用了包、jar 和可执行文件等完全不相关且截然不同的概念。
但是,让我们假设当前的技术水平是最好的并且是不可变的。您当前的要求是构建一个图形界面(我猜是基于 HTTP/HTML)来管理用 Java 编写的系统的所有不同组件。我建议您使用单个 JVM,将您的组件编写为 EJB(本质上是一个 start()
、stop()
和一个查询返回自定义对象的组件状态的方法),最后将所有内容与 Spring 框架连接起来,它为 @Bean
提供了一个很好的注解驱动配置。
SpringBoot 还有一个 actuator package简化暴露对象。您可能还会发现将 bean 注册为托管 bean 并使用 Hawtio framework 很有用。管理它们(通过 Jolokia 代理)。
关于java - 如何有效地管理一堆 jar 文件及其管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580563/