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

Reply via email to