繁体   English   中英

如果服务器突然宕机,Java代码会在中间终止吗

[英]Will Java code be terminated in the middle if server is down suddenly

假设我有一个带有 1000 行代码的 java function,它部署在 weblogic 上。

如果 PC 或 Weblogic 突然关闭(即强制关闭),代码是否有可能在 1000 行的第 X 行运行和终止?

如果是,是否有任何方法可以在服务器恢复时“运行”代码的 rest(从 X+1 到 1000)。

谢谢。

如果 PC 或 Weblogic 突然关闭(即强制关闭),代码是否有可能在 1000 行的第 X 行运行和终止?

的。

如果是,是否有任何方法可以在服务器恢复时“运行”代码的 rest(从 X+1 到 1000)。

您必须实现这样的机制,然后它需要“重置”到X之前的某个点,然后恢复事务。 虽然,您的实现可能是带有持久消息的 Rabbit MQ 主题。 更典型的配置(根据我的经验)涉及在集群中运行多个 Weblogic 服务器,并在这种情况下故障转移到该集群的另一个成员(并结合持久队列)。

无论您的代码在做什么,它都可能随时被外部故障中断。 JRE 本身是无状态的; 没有自动的方法可以在某个点恢复。 代码本身必须设计为“可重新启动”。 也就是说,它必须将 state 保存到一些外部的持久服务中。 如果此代码正在修改外部资源(调用 web 服务、数据库等),它还必须以某种方式在重新启动时将其保存的 state 与外部资源同步。

RabbitMQ 可以在某些方面提供帮助——它是保证传递的消息总线。 它可以确保传递到外部资源的消息。 如果您想要一个分布式的、集群感知的应用程序,它还可以在您的代码的多个运行实例之间同步,这很难做到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM