camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Consul ServiceCall EIP
Date Mon, 30 May 2016 08:55:33 GMT
On Mon, May 30, 2016 at 10:49 AM, Luca Burgazzoli <lburgazzoli@gmail.com> wrote:
> So like serviceCall("myServiceCall").configurationRef("myConf") ?

Yeah there is already a DSL for that named serviceCallConfiguration("myConf")




> ---
> Luca Burgazzoli
>
>
> On Mon, May 30, 2016 at 10:26 AM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
>> On Mon, May 30, 2016 at 10:16 AM, Luca Burgazzoli <lburgazzoli@gmail.com> wrote:
>>> do you mean something like serviceCallRef("myServiceCall") ?
>>> ---
>>
>> No you need to provide
>>
>> - a) name of service to call
>> - b) reference to configuration of service
>>
>> a = mandatory
>> b = optional. As if there is only 1 configuration then use that.
>>
>>
>>
>>> Luca Burgazzoli
>>>
>>>
>>> On Sun, May 29, 2016 at 9:42 AM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
>>>> On Thu, May 26, 2016 at 7:30 PM, Luca Burgazzoli <lburgazzoli@gmail.com>
wrote:
>>>>> ---
>>>>> Luca Burgazzoli
>>>>>
>>>>>
>>>>> On Thu, May 26, 2016 at 7:06 PM, Claus Ibsen <claus.ibsen@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 <lburgazzoli@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
>>
>>
>>
>> --
>> 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

Mime
View raw message