zope.server wrapper that registers with ZooKeeper
Project description
zc.zkzopeserver provides a wrapper for the zope.server WSGI runner that registers with ZooKeeper. By registering with ZooKeeper, you can let the operating system assign ports and have clients find your server by looking in ZooKeeper.
Basic Usage
The wrapper is used in a past-deploy configuration file:
[server:main] use = egg:zc.zkzopeserver zookeeper = zookeeper.example.com:2181 path = /fooservice/providers
The wrapper supports the following options:
- zookeeper
required ZooKeeper connection string
- path
required path at which to register your server
Your server is registered by adding a ZooKeeper ephemeral node as a child of the path with the server address as the name.
- host
host name or ip to listen on, defaultiong to ‘’
- port
The port to listen on, defaulting to 0
- session_timeout
A ZooKeeper session timeout in milliseconds
- threads
The size of the thread pool, defaulting to 1
- monitor_server
A zc.monitor server address.
The value is an address of the form HOST:PORT. See Monitor server below. (Host can be empty to listen on all interfaces.)
Monitor server
The zc.monitor package provides a simple extensible command server for gathering monitoring data or providing run-time control of servers. If zc.monitor is in the Python path, zc.zkzopeserver can start a monitor server and make it’s address available as the monitor property of a server’s ephemeral port. To see how this works, let’s update the earler example:
[server:main] use = egg:zc.zkzopeserver zookeeper = zookeeper.example.com:2181 path = /fooservice/providers monitor_server = 127.0.0.1:0
When our web server is running, the /fooservice/providers node would look something like:
/providers /0.0.0.0:61181 monitor = u'127.0.0.1:61182' pid = 4525
Some notes on the monitor server:
A monitor server won’t be useful unless you’ve registered some command plugins.
zc.monitor isn’t a dependency of zc.zkzopeserver and won’t be in the Python path unless you install it.
Change History
0.1.0 (2011-12-11)
Initial release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.