gpt4 book ai didi

java - 分布式组件生命周期管理

转载 作者:行者123 更新时间:2023-12-01 18:50:25 24 4
gpt4 key购买 nike

我的公司计划实现一个集群系统,其中包含许多服务,这些服务将自动部署在不同的机器上,并相互互连(SOA 风格)。有时,服务之间会存在相互依赖性。

例如:只有当服务A(数据库)启动并运行时,服务B(应用程序)才能启动。

每个服务都计划作为不同的 java 进程运行,可能部署为 WAR(在专用 tomcat 内),甚至根本不需要 Web。

目前,我们将所有服务都放在同一个 WAR 中,并且只有一个 tomcat 部署了 WAR。所有服务都是通过 Spring 定义的,Spring 为我们管理依赖关系。

所以我问自己是否存在一些框架可以帮助管理分布式环境中的服务,正如我上面所描述的?

提前致谢

最佳答案

使用ZooKeeper

更正,使用 Netflix 的 Curator,这是一个基于 Zookeeper 的框架,可以简化使用它的工作。

在我工作的地方,我最近实现了 Coordinator类有两个方法:

waitForDependencies - 一种同步方法,用于检查当前服务的依赖项的 Activity 性并阻止当前线程,直到通知所有依赖项服务都处于 Activity 状态。 active 检查是通过在初始化过程结束时通过调用 notifyUp 验证依赖服务创建的节点是否存在来完成的。

notifyUp - 一种同步方法,通知世界调用该方法的当前服务处于 Activity 状态。该通知是通过在 zk 集群中创建一个临时(临时的,只要创建它的连接处于 Activity 状态就保持 Activity )节点来完成的,依赖于它的其他服务会使用 waitForDependencies 来查找该节点。

关于java - 分布式组件生命周期管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com