camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dhiraj Bokde (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-10320) Provide a LeaderPolicy to ease the implementation of master/slave route/context
Date Wed, 07 Jun 2017 08:55:18 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-10320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16040532#comment-16040532
] 

Dhiraj Bokde commented on CAMEL-10320:
--------------------------------------

[~lb], an initial version of the master component is at https://github.com/dhirajsb/camel/tree/CAMEL-10320.
I haven't had the chance to finish the memory based clustering implementation (which is turning
out to be a bit more work), so it doesn't have tests yet. 
You can start work on the DSL bits. I think it's better to create generic DSL bits for the
master component, configured with clustering implementation specific builders (pseudo DSL)
as building a configuration object doesn't require a DSL. 

> 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
>            Assignee: Dhiraj Bokde
>             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")
>     .master() 
>         .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("master:file:/share")
>     .routeId("shared-files")
>     .master()
>         .configuration("...")
>         .end()
>     .to(...)
> {code}
> {code:xml}
> <camelContext .../>
>     <defaultMasterConfiguration/>
>         <consulConfiguration url="" userName="" password=""/>
>     <defaultMasterConfiguration/>
>     <masterConfiguration id="master-1"/>
>         <consulConfiguration url="" userName="" password=""/>
>     <masterConfiguration/>
>     <!-- 
>         this route should pick up the default configuration 
>     -->
>     <route id="data-files">
>         <from uri="master:file:/data"/>
>         <to uri="..."/>
>     <route>
>    <!-- 
>         this route should pick up the configuration named 
>         master-1 and the master prefix should be optional.
>     -->
>    <route id="shared-files">
>         <from uri="file:/shared"/>
>         <master configurationRef="master-1"/>
>         <to uri="..."/>
>     <route>
> </camelContext>
> {code}



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

Mime
View raw message