mesos-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikolaos Ballas neXus <nikolaos.bal...@nexusgroup.com>
Subject Re: Java detector for mess masters and leader
Date Wed, 08 Jul 2015 14:42:15 GMT
Don…the bellow code will return leader node for mesos & marathon framework.

import …
public class SomeClass {
        CuratorFramework client;
public void init(){
 client = CuratorFrameworkFactory.newClient(connectionString, new ExponentialBackoffRetry(1000,
3))
        }
public String getMasterNodeIP(){
if(client!=null){

        client.start();
        LeaderSelectorListener listener = new LeaderSelectorListenerAdapter() {
            public void takeLeadership(CuratorFramework client) throws Exception {
            }
        };

        LeaderSelector selector = new LeaderSelector(client, path, listener);
        selector.autoRequeue();
        selector.start();

        Participant participant = selector.getLeader();
        String id = participant.getId().substring(participant.getId().indexOf("@") + 1, participant.getId().indexOf("*"));
        masterNode.add(id);
    }
} catch (Exception e) {
    logger.error("Failed find out master node", e.getCause());
}

        }
}
Nikolaos Ballas  |  Software Development Manager

Technology Nexus S.a.r.l.
2-4 Rue Eugene Rupert
2453 Luxembourg
Delivery address: 2-3 Rue Eugene Rupert,Vertigo Polaris Building
Tel: + 3522619113580
contact@nexusgroup.com<mailto:contact.de@nexusgroup.com> | nexusgroup.com<http://www.nexusgroup.com/>
LinkedIn.com<http://www.linkedin.com/company/nexus-technology> | Twitter<http://www.twitter.com/technologynexus>
| Facebook.com<https://www.facebook.com/pages/Technology-Nexus/133756470003189>


[cid:19B646FC-B8E7-4F77-BBD3-75DD7B4B5BF7]

On 08 Jul 2015, at 16:27, Donald Laidlaw <donlaidlaw@me.com<mailto:donlaidlaw@me.com>>
wrote:

@Nikolaos Ballas neXus
I can see no way to instantiate the Curator LeaderSelector without actually becoming a participant
in leader election. If I do instantiate that class, it does not accept a null value for the
LeaderSelectorListener and so anything instantiating LeaderSelector must also become a participant.

Even then, that class provides no way to listen for leadership change. The only listening
it does is to discover when it itself becomes the leader. I suppose it would be possible to
participate in the leadership election, but immediately relinquish leadership causing a real
mesos master to become the leader, but that seems a little too invasive to do.

The only solution I can see is to monitor the children of the mesos leader node, and parse
through the contents of the ones whose name begins with “info” as per @Marco Massenzio.

Best regards,
-Don

On Jul 7, 2015, at 12:16 PM, Donald Laidlaw <donlaidlaw@me.com<mailto:donlaidlaw@me.com>>
wrote:

Thank you all.

I will use the Curator recipe, since I already use Curator for a bunch of other things.

If curator can find the leader and the participants that is good enough. Otherwise I will
parse the protocol buffer contents, and provide a way to parse the future son contents when
that happens.

I’ll reply again with the results of using the Curator recipe to get the leader and participants.

Best regards,
-Don

On Jul 7, 2015, at 11:04 AM, Dick Davies <dick@hellooperator.net<mailto:dick@hellooperator.net>>
wrote:

The active master has a flag set in  /metrics/snapshot  :
"master/elected" which is 1 for the active
master and 0 otherwise, so it's easy enough to only load the metrics
from the active master.

(I use the collectd plugin and push data rather than poll, but the
same principle should apply).

On 7 July 2015 at 14:02, Donald Laidlaw <donlaidlaw@me.com<mailto:donlaidlaw@me.com>>
wrote:
Has anyone ever developed Java code to detect the mesos masters and leader, given a zookeeper
connection?

The reason I ask is because I would like to monitor mesos to report various metrics reported
by the master. This requires detecting and tracking the leading master to query its /metrics/snapshot
REST endpoint.

Thanks,
-Don



Mime
View raw message