First bits merged --- Luca Burgazzoli
On Thu, Jun 15, 2017 at 11:05 AM, Nicola Ferraro <ni.ferr...@gmail.com> wrote: > +1 > > Really a great work Luca. It's completely separated from the route policy > so that we can also implement the generic master component on top of it. > But it can also be used for other purposes by just implementing a listener > interface. The cluster view is also a clean way to monitor the cluster > status. > > You have also shown how to clusterize the whole context (all routes) using > the route policy factory, and route policies can also be set at route level. > > So, merge it and I'll implement the Kubernetes cluster service with this > new spec! > > > > On Wed, Jun 14, 2017 at 3:49 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > >> +1 >> >> Great work Luca. Its good to see this coming in camel-core, as we now >> have many more Camel components that does clustering and leader >> elections. It makes good benefit to have some common reusable code >> from camel-core. >> >> >> >> On Wed, Jun 14, 2017 at 11:36 AM, Luca Burgazzoli <lburgazz...@gmail.com> >> wrote: >> > Hello, >> > >> > I've been working on CAMEL-11362 to create a leader election service >> > in recent times and I've ended up with some initial bits of a >> > potential clustering service for Camel [1]. >> > >> > So fare there are a few simple interfaces: >> > - CamelClusterService >> > - CamelClusterView >> > - CamelClusterMember >> > >> > The CamelClusterService is just a regular camel service and is >> > responsible to create views of the cluster; a view is like a "group" >> > with its own set of resources like a leader/services/etc and i.e. >> > broadcast of messages should not go beyond its borders, etc; how the >> > view is mapped then depends on the underlying technology used so it >> > can be a group in atomix/jgroups, a path in zk/etcd, a map in >> > hazelcast/infinispan, etc. >> > >> > As today the View API is limited to leader election and topology >> > events (member joining/leaving the view) and I've build a generic >> > RoutePolicy and RoutePolicyFactory on top of them [2][3]. A future >> > work may be to add support for service discovery, load balancing ad >> > more. >> > >> > I also started the implementation of camel-atomix based on the >> > atomix.io project which offers some easy to use APIs for distributed >> > systems so an implementation of the API can be found here [4] and a >> > test here [5]. >> > >> > >> > Feedback is very welcome. >> > >> > >> > [1] https://github.com/lburgazzoli/apache-camel/tree/ >> CAMEL-11362/camel-core/src/main/java/org/apache/camel/ha >> > [2] https://github.com/lburgazzoli/apache-camel/blob/ >> CAMEL-11362/camel-core/src/main/java/org/apache/camel/ >> impl/ha/ClusteredRoutePolicy.java >> > [3] https://github.com/lburgazzoli/apache-camel/blob/ >> CAMEL-11362/camel-core/src/main/java/org/apache/camel/impl/ha/ >> ClusteredRoutePolicyFactory.java >> > [4] https://github.com/lburgazzoli/apache-camel/tree/ >> CAMEL-11362/components/camel-atomix/src/main/java/org/ >> apache/camel/component/atomix/ha >> > [5] https://github.com/lburgazzoli/apache-camel/blob/ >> CAMEL-11362/components/camel-atomix/src/test/java/org/ >> apache/camel/component/atomix/ha/AtomixRoutePolicyTest.java >> > >> > >> > --- >> > Luca Burgazzoli >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 >>