You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Luca Burgazzoli (JIRA)" <ji...@apache.org> on 2017/05/26 06:15:04 UTC

[jira] [Updated] (CAMEL-10320) Provide a LeaderPolicy to ease the implementation of master/slave route/context

     [ https://issues.apache.org/jira/browse/CAMEL-10320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luca Burgazzoli updated CAMEL-10320:
------------------------------------
    Description: 
I've been working on some master/slave RoutePolicy and I'm wondering
if we can have a proper LeaderPolicy with a standardized
implementation in Camel 3.0 so one has only to notify when a
leadership is taken

In addition it may be nice to have:
- a support for Leader election from the CmelContext so the routes are
started when the context become leader.
- an option to warm-up routes or to keep them stopped while not leader

Then we can also make it exposed in JMX so tooling are able to detect
which are current master and slaves, and whatnot.

Some possible DSL/EIP extensions:

{code:java}
from("...")
    .routeId("myRoute")
    .clustered() 
        .group("my-group")
        .consulConfiguration("http://consul-node:8500")
        .end()
    . to(...)
{code}

{code:java}
camelContext.setDefaultClusteredRouteConfiguration(
    ClusteredRouteConfiguration.builder()
        .withAction(ClusteredRouteAction.SUSPEND)
        .withHealtCheck(...)
        .consulConfiguration("http://consul-node:8500")
        .build()
);
  
// lookup the cluster configuration from the registry   
from("clustered:file:/data")
    .routeId("data.files")
    .to(...)

// lookup the cluster configuration from the registry  
from("clustered:file:/share")
    .routeId("shared-files")
    .to(...)
{code}

  was:
I've been working on some master/slave RoutePolicy and I'm wondering
if we can have a proper LeaderPolicy with a standardized
implementation in Camel 3.0 so one has only to notify when a
leadership is taken

In addition it may be nice to have:
- a support for Leader election from the CmelContext so the routes are
started when the context become leader.
- an option to warm-up routes or to keep them stopped while not leader

Then we can also make it exposed in JMX so tooling are able to detect
which are current master and slaves, and whatnot.


> Provide a LeaderPolicy to ease the implementation of master/slave route/context
> -------------------------------------------------------------------------------
>
>                 Key: CAMEL-10320
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10320
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-core
>            Reporter: Luca Burgazzoli
>             Fix For: 2.20.0
>
>
> I've been working on some master/slave RoutePolicy and I'm wondering
> if we can have a proper LeaderPolicy with a standardized
> implementation in Camel 3.0 so one has only to notify when a
> leadership is taken
> In addition it may be nice to have:
> - a support for Leader election from the CmelContext so the routes are
> started when the context become leader.
> - an option to warm-up routes or to keep them stopped while not leader
> Then we can also make it exposed in JMX so tooling are able to detect
> which are current master and slaves, and whatnot.
> Some possible DSL/EIP extensions:
> {code:java}
> from("...")
>     .routeId("myRoute")
>     .clustered() 
>         .group("my-group")
>         .consulConfiguration("http://consul-node:8500")
>         .end()
>     . to(...)
> {code}
> {code:java}
> camelContext.setDefaultClusteredRouteConfiguration(
>     ClusteredRouteConfiguration.builder()
>         .withAction(ClusteredRouteAction.SUSPEND)
>         .withHealtCheck(...)
>         .consulConfiguration("http://consul-node:8500")
>         .build()
> );
>   
> // lookup the cluster configuration from the registry   
> from("clustered:file:/data")
>     .routeId("data.files")
>     .to(...)
> // lookup the cluster configuration from the registry  
> from("clustered:file:/share")
>     .routeId("shared-files")
>     .to(...)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)