Hi Matthias, I am working on a proposal on this topic. My idea is to use local netty features. I will share some code. Beware that this usage of zookeeper is to be adopted only if needed. My case is for instance to run unit tests without a real network. Maybe you should consider to abstract your zookkeper access layer
Enrico Il mar 27 set 2016, 11:07 Matthias Amberg <[email protected]> ha scritto: > Dear Zookeeper developers, > > I have a feature request for allowing an embedded Zookeeper be run and > connected to without using any system networking stack. All > client-server communications would be handled internally of a single > runtime. > We at Unblu offer our product as a cloud service (orchestrated by > Zookeeper) as well as an on-premises installable product. > In the latter scenario we use a single embedded version of Zookeeper to > orchestrate all the different embedded Version. > This setup allows us to use the same mechanisms for service discovery and > synchronization, whether we run in a distributed cloud setup or > a single on-premises node. > > For this use case we have implemented versions of ServerCnxn, > ServerCnxnFactory and ClientCnxnSocket that handle client-server > connections internally without > using any server networking stack. > > I would very much love to commit a patch that implements this feature or > open a jira issue to discuss this further, if there is interest from the > Zookeeper community for such a feature. > > We think this feature offers several advantages over running Zookeeper > locally or embedded via a networking stack: > - less system resource usage (no need for additional networking overhead in > what could be systems that already have a high load of networking IO) > - simpler configuration and potentially better security: no need to > configure any ports and network addresses, firewalls, loopback interfaces > etc. (Our software runs in banking environments where security constraints > often makes it > difficult to (even) have loopback connections) > - simpler Continuous Integration: Different Test Runs of our builds > constantly interfere with each other due to ports being already in use and > so forth. > > Additionally as this feature simply would be an extension to the current > code base that wouldn't even be instantiated in the traditional server > setup there would be almost no interference with the current code base and > hence no threat > to Zookeeper stability in traditional setups. > > It would be great if you could provide your thoughts and feedback on this > and whether this is a welcome feature, in which case I would create a Jira > Issue for further discussion and patch submission. > > Best regards, > > Matthias Amberg > Developer > Office: ++41 511 11 64 > > unblu inc. - Kernserstrasse 17 - 6060 Sarnen - Switzerland > > unblu makes websites personal http://www.unblu.com > -- -- Enrico Olivelli
