Configuration Zookeeper中的任务调度

Configuration Zookeeper中的任务调度,configuration,apache-zookeeper,Configuration,Apache Zookeeper,我正在尝试Zookeeper来存储服务的配置,因此我需要的一个功能是调度,即在提到的某个时间段内,我将用其他配置交换当前配置。如何在Zookeeper中实现这一点 对于动物园管理员来说,最好的用户界面是什么 Q:我正在尝试Zookeeper来存储服务的配置,所以 我需要的功能是计划,即为我提到的某个持续时间 将我的当前配置与其他配置交换。我怎样才能达到目标 这是动物园管理员吗 假设您有两个应用程序,一个用于设置配置(我们称之为A),另一个用于读取配置(我们称之为B)A应该在ZooKeeper中创

我正在尝试Zookeeper来存储服务的配置,因此我需要的一个功能是调度,即在提到的某个时间段内,我将用其他配置交换当前配置。如何在Zookeeper中实现这一点

对于动物园管理员来说,最好的用户界面是什么

Q:我正在尝试Zookeeper来存储服务的配置,所以 我需要的功能是计划,即为我提到的某个持续时间 将我的当前配置与其他配置交换。我怎样才能达到目标 这是动物园管理员吗

假设您有两个应用程序,一个用于设置配置(我们称之为
A
),另一个用于读取配置(我们称之为
B
A
应该在ZooKeeper中创建znode,例如命名为
/config
,其中包含配置数据。请注意,单个znode最多可以保存1MB的数据—这可能足以保存配置
B
然后需要读取znode
/config
的内容并注册a。watch的目的是在znode发生变化时通知
B

特别是,当
A
将新配置写入
/config
时,watch将确保
B
获得有关它的通知。重要提示-监视事件是一次触发器,即当
B
收到通知时,它需要再次注册监视,否则将错过进一步的更改。还要注意,ZooKeeper本身没有任何内置的调度机制-
A
必须依赖其系统时钟在指定的时间范围内更新配置

Q:对于动物园管理员来说,最好的用户界面是什么

我没有亲自尝试过这些(适合我的需要),但最受欢迎的应该是:


你能举一个重新注册手表的例子吗?@JSR29是的,如果你使用C API,你可以写:
void create_session(){zookeer_init(host,connection_watcher,TIMEOUT,nullptr,this,0);
connection_watcher
的实现是:
void connection_watcher(zhandle_t*zh,int类型,int状态,const char*path,void*v){if(state==ZOO_EXPIRED_SESSION_state)create_SESSION();}
@JSR29注意,在触发的情况下,
create\u session
再次被调用,watch
connection\u watcher
通过
zookeer\u init
调用重新注册。在您的情况下,您应该向
zoo\u wget
函数提供watcher。我使用的是JAVA API。@JSR29逻辑是相同的。在watcher body中(在我的示例中,
connection\u watcher
)只需再次调用注册该watcher的方法(在我的示例中,
create\u session
)。