GitHub user yveschina opened a pull request:
https://github.com/apache/incubator-storm/pull/61
nimbus ha solution for issue STORM-166
Nimbus HA feature is quite important for our application running on the
storm cluster. So, we've been working on the problem for some time and now a
solution seems not that perfect but be enough to apply has comed out.
1.Nimbus Servers now can register themselves in Zookeeper. They perform a
leader election using "InterProcessMutex" interact with Zookeeper to ensure
that there is only one nimbus responsible for launching and monitoring
topologies.
2.Every Nimbus Server is running a timer to compare and find if there are
topology codes which are not exists on it's local disk. They would download
lcoal missing topology codes from the Nimbus leader through the thrift RPC just
like Supervisors do.With this feature, any numbers of Nimbus Server can be
launched through out the cluster.
3.StormSubmitter,Supervisor,Non-leader Nimbus and Storm UI now are able to
find and connect to the Nimbus leader via Zookeeper.A Nimbus leadership table
is also added to Storm-UI on the main page to show every Nimbus's
leader-election state and it's host in addition.
PS: Some implementation of the Nimbus-Election part has taken @Frostman's
solution for reference(link: https://github.com/nathanmarz/storm/pull/422).
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/yveschina/incubator-storm master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-storm/pull/61.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #61
----
commit 4f12373e77e925b82e1903bd2eda31176871834d
Author: YuFeng <[email protected]>
Date: 2014-04-04T07:03:56Z
nimbus ha solution for issue STORM-166
----
---
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.
---