[ https://issues.apache.org/jira/browse/STORM-702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14358034#comment-14358034 ]
Aaron Dixon edited comment on STORM-702 at 3/12/15 3:02 AM: ------------------------------------------------------------ A couple of notes on some of the code/design decisions in the current pull request. By supporting exhibitor, there will necessarily be two ways to configure Storm's connection to a Zookeeper cluster. Either you will configure a direct connection to zookeeper hosts or you will configure a connection to exhibitor host(s). I see two ways to offer this up from a configuration perspective: (1) You have *separate* connection properties for exhibitor servers and port that parallel those configuration options for zookeeper. This is how I chose to implement it in the current pull request. The properties are "storm.exhibitor.servers", "storm.exhibitor.port", "storm.exhibitor.poll.millis", and a few more.) In this case, when the exhibitor servers/port are provided, the "storm.zookeeper.servers" and "storm.zookeeper.port" configuration properties are not required but if present are used as backups in the exhibitor-configured client. This of course is backwards-compatible. All existing storm configurations that configure zookeeper directly will work as usual. Exhibitor is only used if configured. (2) Another design option would be to try to overload the existing "storm.zookeeper.servers" and "storm.zookeeper.port" properties by using a scheme for hosts. So for example you might indicate exhibitor servers via a configuration like so: storm.zookeeper.servers: - "exhibitor://127.0.0.1" I think this is less desirable for a number of reasons. I think it is less explicit, less conventional. Also there will be always still be a need for "storm.exhibitor.*" properties to configure specific connection details unique to an exhibitor connection. was (Author: atdixon): A couple of notes on some of the code/design decisions in the current pull request. By supporting exhibitor, there will necessarily be two ways to configure Storm's connection to a Zookeeper cluster. Either you will configure a direct connection to zookeeper hosts or you will configure a connection to exhibitor host(s). I see two ways to offer this up from a configuration perspective: (1) You have *separate* connection properties for exhibitor servers and port that parallel those configuration options for zookeeper. This is how I chose to implement it in the current pull request. The properties are "storm.exhibitor.servers", "storm.exhibitor.port", "storm.exhibitor.poll.millis", and a few more.) In this case, when the exhibitor servers/port are provided, the "storm.zookeeper.servers" and "storm.zookeeper.port" configuration properties are not required but if present are used as backups in the exhibitor-configured client. This of course is backwards-compatible. All existing storm configurations that configure zookeeper directly will work as usual. Exhibitor is only used if configured. (2) Another design option would be to try to overload the existing "storm.zookeeper.servers" and "storm.zookeeper.port" properties by using a scheme for hosts. So for example you might indicate exhibitor servers via a configuration like so: storm.zookeeper.servers: - "exhibitor://127.0.0.1" I think this is less desirable for a number of reasons. I think it is less explicit, less conventional. Also there will be a need for "storm.exhibitor.*" properties to configure specific connection details unique to an exhibitor connection. > Apache Exhibitor support > ------------------------ > > Key: STORM-702 > URL: https://issues.apache.org/jira/browse/STORM-702 > Project: Apache Storm > Issue Type: Improvement > Reporter: Aaron Dixon > Priority: Critical > > Storm connects to Zookeeper via an explicit list of zookeeper hosts. > Apache Exhibitor offers zookeeper cluster discovery and management features > allowing for dynamically resizing zookeeper clusters, restarting and > replacing zk machines in the cluster, etc. > Curator supports creating zookeeper client connections using exhibitor hosts. > Storm should allow (optionally) for connection to its Zookeeper clusters > through Exhibitor. > Here is the github pull request that prompted this ticket, and that > introduces optional exhibitor configuration and exhibitor support in Storm: > https://github.com/apache/storm/pull/432 -- This message was sent by Atlassian JIRA (v6.3.4#6332)