首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有状态进程作为服务(Java)

有状态进程作为服务(Java)
EN

Stack Overflow用户
提问于 2013-09-24 11:40:53
回答 1查看 43关注 0票数 0

我正在构建一个服务,允许客户在“网络中”运行单独的工作进程。这些流程设计为运行很长一段时间,并且每分钟都有新的订单(事件驱动)。流程的目的是继续运行,即使没有新的订单,而且所有的订单都已经处理过。每个客户的-> 1流程。

我需要下列“功能”:

  • 开始新的过程
  • 结束过程(按需完成,永远不会自动)
  • 跟踪进程/用户
  • 接收流程的新“订单”(通过客户id标识流程)
  • 当客户的订单无法工作时通知他/她,万一他/她的过程结束(例如出现异常,有人杀死了服务器.)

我正在寻找允许我解决以下问题的模式或最佳实践:- -一个服务器中的进程管理(例如,使用静态列表或单例模式,类似于跟踪用户id和进程之间的映射) - -对多台服务器的进程管理(可伸缩性):一台服务器可能运行100到200个进程,如果我有更多的客户,我如何记得进程在哪个服务器上运行?

我相信以前也有其他人面对这些问题,当然也有“对”和“错”的方法。

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 14:19:13

我强烈建议您创建一个持久的集中式数据存储,以保留您的客户->流程列表。特别是当你在谈论请求之间的几分钟时。

有一个调度模式来处理将请求发送到正确的服务器/进程是非常简单的。您可能应该在每台机器上运行它,允许它将请求路由到内部处理器,或者将请求发送到另一台计算机。

这样,您就可以很好地进行故障转移扩展。任何机器都能派到其他人那里。您将需要一位主程序,其工作是监视其他机器的故障(读取集中式表,并对每个进程进行ping (只需使其成为另一种订单)。

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

https://stackoverflow.com/questions/18980627

复制
相关文章

相似问题

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