Github user eolivelli commented on the issue:

    https://github.com/apache/zookeeper/pull/227
  
    @ivankelly thank you for your time
    
    > The commit message explains what the patch is doing, but not why. The 
reason I'm pushing back a lot on this, is that I think it adds indirection and 
complexity, and I don't see what the benefit is over simply binding to 0.
    
    I will rewrite the message and explain better.
    
    Benefits for tests: I agree with you that binding to 0 will solve the 
problem of running multiple tests on the same machine, this change will only 
add the ability to work without opening real ports.
    
    For production: With in-vm transport you will not open ZK clientPort to the 
world, which in turn will be a security risk. If you open the clientPort, even 
only on loopback you need to configure ZK security at ZK level or for instance 
iptables
    
    >  you've created a static helper class
    Yes, unfortunately there is no automatic way to map local addresses to 
InetAddress. I have included the "mapToLocalAddress" method which is used only 
in tests in order to define a standard practice to map LocalAddress. This patch 
does not introduce an official CnxnFactory for Local transport, but there is a 
need to define how it should be used. Maybe it would be better to add the 
official CnxnFactory
    
    > How are you using zookeeper in single node mode? Is it only as a metadata 
store for bk?
    Yes, I am using it to run BookKeeper + Bookie inside the same JVM. I am 
using primary BK as write-ahead-log for replicated states machines.
    For every application now I need to implement a BookKeeper based WAL + 
local disk WAL, when BookKeeper is really good even in local mode.
    I really would like to abstract the metadata-store and bookie discovery in 
BK to not use ZK but I think this will be the work in the next year, actually 
(4.5 release) we are focusing the efforts on other aspects.
    I have implemented Local Transport in BK too. On BookKeeper I had the same 
security problem because BK 4.4 did not have "public" security support at all 
(in 4.5 we have it with SSL + SASL + ZK ACLs)



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to