zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enrico Olivelli (JIRA)" <j...@apache.org>
Subject [jira] [Created] (ZOOKEEPER-2755) Allow to subclass ClientCnxnSocketNetty and NettyServerCnxn in order to use Netty Local transport
Date Thu, 13 Apr 2017 04:51:41 GMT
Enrico Olivelli created ZOOKEEPER-2755:

             Summary: Allow to subclass ClientCnxnSocketNetty and NettyServerCnxn in order
to use Netty Local transport
                 Key: ZOOKEEPER-2755
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2755
             Project: ZooKeeper
          Issue Type: New Feature
          Components: java client, server
    Affects Versions: 3.5.2
            Reporter: Enrico Olivelli

ClientCnxnSocketNetty and NettyServerCnxn use explicitly InetSocketAddress class to work with
network addresses.

We can do a little refactoring to use only SocketAddress and make it possible to create subclasses
of ClientCnxnSocketNetty and NettyServerCnxn which leverage built-in Netty 'local' channels.

Such Netty local channels do not create real sockets and so allow a simple ZooKeeper server
+ ZooKeeper client to be run on the same JVM without binding to real TCP endpoints.


Ability to run concurrently on the same machine tests of projects which use ZooKeeper (usually
in unit tests the server and the client run inside the same JVM) without dealing with random
ports and in general using less network resources

Run simplified (standalone, all processes in the same JVM) versions of applications which
need a working ZooKeeper ensemble to run.

Embedding ZooKeeper server + client on the same JVM has many risks and in general I think
we should encourage users to do so, so I in this patch I will not provide official implementations
of ClientCnxnSocketNetty and NettyServerCnxn. There will be implementations only inside the
test packages, in order to test that most of the features are working with custom socket factories
and in particular with the 'LocalAddress' specific subclass of SocketAddress.

the 'Local' sockets feature will be available on Netty 4 too

This message was sent by Atlassian JIRA

View raw message