我是一名批处理解决方案的开发人员,它的工作方式是我们拆分一个大文件并在jvms中处理它。因此我们有4个处理器jvms,它们占用一大块文件并处理它,而网关jvm的1个网关jvm作业是将文件拆分为no。处理器jvms,即4并发送由处理器jvms消耗的休息请求,休息请求具有从中挑选文件的文件位置的所有细节以及一些其他细节
现在,如果我想添加另一个处理器jvm而没有任何停机时间,我们可以做任何事情。目前我们在属性文件中维护4个jvms的URL有没有更好的方法呢?这使我能够添加更多的jvms而无需重新启动任何组件
答案 0 :(得分:0)
您可以考虑设置负载均衡器并将JVM放在其后面。负载均衡器负责将传入的请求分发给JVM。
这样,您可以根据工作负载扩展或缩小JVM。此外,如果其中一个JVM无法正常工作,系统的其他部分也不再需要关心它了。
答案 1 :(得分:0)
不确定您关注的是什么用例和技术堆栈。但似乎您需要具有自动扩展和动态配置功能的分布式系统。您是否考虑过Hadoop或Spark集群或Akka?
如果您不能使用其中任何一个,那么解决方案是维护某些数据存储区中的JVM列表(假设在表中);其动态数据意味着可以添加/删除/更新JVM。然后,您需要一个资源管理器,可以根据负载或任何其他条件逻辑决定是否启动新的JVM。此资源管理器需要监视整个系统。此外,无论何时创建任务或块或切片数据,然后使用ApacheMQ,ActiveMQ等消息队列进行分发。您还可以考虑Kafka的复杂用例。现在,像websphere(Libery profile),weblogic这样的应用服务器也提供自动扩展功能。因此,如果您已经在使用任何此类应用程序服务器,那么您可以考虑使用该功能。我希望这会有所帮助。