[ 
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)

Reply via email to