You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@zookeeper.apache.org by "Damien Diederen (Jira)" <ji...@apache.org> on 2020/11/18 18:20:00 UTC
[jira] [Resolved] (ZOOKEEPER-3874) Official API to start ZooKeeper
server from Java
[ https://issues.apache.org/jira/browse/ZOOKEEPER-3874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Damien Diederen resolved ZOOKEEPER-3874.
----------------------------------------
Resolution: Fixed
Issue resolved by pull request 1526
[https://github.com/apache/zookeeper/pull/1526]
> Official API to start ZooKeeper server from Java
> ------------------------------------------------
>
> Key: ZOOKEEPER-3874
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3874
> Project: ZooKeeper
> Issue Type: New Feature
> Components: server
> Affects Versions: 3.6.1
> Reporter: Enrico Olivelli
> Assignee: Enrico Olivelli
> Priority: Major
> Labels: pull-request-available
> Fix For: 3.7.0
>
> Time Spent: 3h 50m
> Remaining Estimate: 0h
>
> We want to introduce a new API to boot a ZooKeeper server node from Java.
> Currently (up to 3.6.1) we are distributing a tarball that contains binaries and bash scripts to launch the server.
> We are also deploying to Maven central the zookeeper-server jar that contains the server side code together with the java client code.
> People are used to use that Jar to start the ZooKeeper server inside a Java process.
> Two use cases:
> * run tests of applications based on ZooKeeper (like Curator TestingServer)
> * launch ZooKeeper with some Java based process management system
> Currently such applications that want to run ZooKeeper server use internal code, in the most fancy ways, in order to setup something that 'works'.
> This is very error prone because ZooKeeper server internals change from version to version, because the only contracts are the configuration file format and the wire protocols (client-server and server-server).
>
> With this new feature we want to define a stable API that allows:
> * to configure and start a ZooKeeper server (standalone or cluster)
> * stop it gracefully (even if the suggested way to stop ZooKeeper is to use "kill -9")
> * check that the server is alive
> * configure the MetricsProvider instance to use (in order to integrate better with the metrics system provided by the runtime environment)
> The configuration will be passed as a java.util.Properties object or a Java File (or Path) object.
>
> We are going to create a wrapper around ZooKeeperMain and other classes.
> ZooKeeper bootstrap code is already used in many fancy ways, the less we change it the better it is for the sake of stability.
>
> In is out of scope to support Java applications that embed ZooKeeper server and use the ZooKeeper client, this is not a good idea and it must not be suggested.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)