do you mean something like serviceCallRef("myServiceCall") ? --- Luca Burgazzoli
On Sun, May 29, 2016 at 9:42 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Thu, May 26, 2016 at 7:30 PM, Luca Burgazzoli <lburgazz...@gmail.com> > wrote: >> --- >> Luca Burgazzoli >> >> >> On Thu, May 26, 2016 at 7:06 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >>> Hi Luca >>> >>> Yeah its good to get more eyes on this new set of code. When I created >>> kubernetes and ribbon there was sure some overlap of code that could >>> be shared, but I didn't push for much default/abstract code in >>> camel-core because there its new code and I also wanted to see what >>> consul, etcd, zookeeper and other distributed systems may >>> need/require. >>> >>> I like the idea of the impl.remote package to have some base >>> implementation there. >>> >>> Your current branch [2] has a good set of reusable code although its >>> tied to consul currently, so that would need to be made abstract so it >>> can be reuse by kuernetes and maybe also ribbon as well (where it >>> makes sense). >> >> I've removed some consul specific stuffs that I left by mistake, should be >> a little tidy now. >> >> An aspect to take into account is how to make it easy to configure >> ServiceCallServerListStrategy in case we use DefaultServiceCallProcessor >> maybe something like: >> >> serviceCall() >> .name("my-service") >> .roundRobinLoadBalancer() >> .consulServerListStrategy() >> .type(Strategy.ON_DEMAND) >> .url("http://consul-host:8500") >> .dc("west") >> .end() >> >> Too ugly ? >> > > Yeah possible - its always tricky to find the right balance. > > I wonder if you may want to do this in the configuration, and then in > the routes with serviceCall you then just need to refer to the service > name / url to be used - then all the round robin, service list, and so > on are configured outside the route in the configuration. > > We could also leave those in the route DSLs as well so you can > override the configuration, so you can use > > serviceCall().name("foo").consulConfiguraiton().dc("west").end() > > > > But then on the other hand if you just want to call a single service > you may want to do it all in the route without the configuration. But > if we look at rest-dsl then it separates the configuration from the > REST endpoint. > > > > > >>> >>> An aspect we haven't added yet could be to find out if we can expose >>> some JMX attributes and operations for thise service call EIP as well? >>> And then maybe some Camel commands so you can manage/list it from >>> karaf and other CLIs. But this part is more "nice to have" and a bit >>> "eye candy" but still somewhat cool. >>> >>> >>> >>> >>> >>> >>> On Thu, May 26, 2016 at 4:13 PM, Luca Burgazzoli <lburgazz...@gmail.com> >>> wrote: >>>> Hello, >>>> >>>> I'm playing a little bit with the new ServiceCall EIP by adding support for >>>> consul service discovery and I've committed some code in my own branch [1]. >>>> >>>> I borrowed most of the code from camel-kubernetes and as it ended up being >>>> almost a clone, I've tried to make some base/default classes as what really >>>> make the difference is the implementation of ServiceCallServerListStrategy >>>> and ServiceCallLoadBalancer so to add a simple discovery engine you only >>>> need to implement your own ServiceCallServerListStrategy and eventually >>>> your >>>> own ServiceCallLoadBalancer (i.e. for ribbon). >>>> >>>> Does it make sense ? >>>> >>>> [1] https://github.com/lburgazzoli/apache-camel/tree/CAMEL-9989 >>>> [2] >>>> https://github.com/apache/camel/compare/master...lburgazzoli:CAMEL-9989?expand=1 >>>> >>>> --- >>>> Luca Burgazzoli >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> http://davsclaus.com @davsclaus >>> Camel in Action 2: https://www.manning.com/ibsen2 > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2