Hi

Okay so the good thing is that the cache is only in use if you specify
a cacheKey, so people can then easily turn on the cache by providing a
key.

I am adding component docs for the options that lacks those.



On Thu, Apr 14, 2016 at 11:57 AM, Bilgin Ibryam <bibr...@gmail.com> wrote:
> All changes sounds good to me. I'd like it have default behaviour that
> is expected by a Camel developer... like no caching and all the rest.
>
> On 14 April 2016 at 10:06, Claus Ibsen <claus.ib...@gmail.com> wrote:
>> Hi
>>
>> Okay done some improvements.
>>
>> I wonder if the caching should not be disabled by default. Its a bit
>> annoying to have to specify a cache key for de-dups, if you are really
>> not using that.  I am not sure I would like that enabled by default,
>> so I would have to disable it all the time.
>>
>> Also I think the cacheKey should be a simple expression by default, so
>> you can just type
>>
>> cacheKey=header:foo
>>
>> or with the ${ } to make it stand out
>>
>> cacheKey=${header:foo}
>>
>> And if you want to refer to an expression then you can use
>>
>> cacheKey=#myKey
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Apr 14, 2016 at 10:08 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>> On Sun, Apr 10, 2016 at 3:41 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>>> Hi
>>>>
>>>> Maybe the endpoint can be specified as both id an uri.
>>>> Then if you want to refer to an existing by id as it does today, you
>>>> just use ref:
>>>>
>>>> runEndpoint=ref:foo
>>>> runEndpoint=direct:foo
>>>>
>>>> This also allows to route to seda / jms etc.
>>>>
>>>> runEndpoint=seda:bar
>>>> runEndpoint=jms:queue:numbers
>>>>
>>>> Though if you need to configure the endpoints then you would need to
>>>> setup the endpoint first and then refer to it by id.
>>>>
>>>
>>> I am working on this and a few other improvements so we create the
>>> produce once and reuse it as well the resources are shutdown when
>>> being stopped etc.
>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, Apr 10, 2016 at 1:03 PM, Bilgin Ibryam <bibr...@gmail.com> wrote:
>>>>> While implementing the hystrix component, I had to choose whether to
>>>>> use endpoint Ids or direct component for run/faillback endpoints.
>>>>>
>>>>> I've chosen endpoints, as it allows defining any kind of endpoints
>>>>> with all the options and then refer to it by its id. The downside is
>>>>> that you have to add the endpoint to the registry.
>>>>>
>>>>> I think adding also the direct compoent for referring to run/fallback
>>>>> routes would simplify the use of this component. Something like this:
>>>>>
>>>>> public void configure() {
>>>>>
>>>>>     from("direct:fallback")
>>>>>             .to("mock:error");
>>>>>
>>>>>     from("direct:run")
>>>>>             .to("mock:result");
>>>>>
>>>>>     from("direct:start")
>>>>>             
>>>>> .to("hystrix:testKey?runDirectName=run&fallbackName=fallback");
>>>>>
>>>>> }
>>>>>
>>>>> The advantage is that there is no need of an endpointID and and more
>>>>> importantly for adding the endpoint to the registry. The downside is
>>>>> that you have to have a separate route that is using the direct
>>>>> consume.
>>>>>
>>>>> WDYT?
>>>>>
>>>>>
>>>>>
>>>>> On 10 April 2016 at 11:19, Bilgin Ibryam <bibr...@gmail.com> wrote:
>>>>>> Hi chaps,
>>>>>>
>>>>>> I'm also not very happy with the way endpointId are part of the
>>>>>> hystrix URL but that was the only non-intrusive way I manged to
>>>>>> implement it atm. Keep in mind that we want both Java and XML dsl
>>>>>> solution. So if you have any ideas to make it easier to use, feel free
>>>>>> to work on it. I won't have bandwidth to improve it further in near
>>>>>> future.
>>>>>>
>>>>>> The previous time when I implemented the circuit breaker, the most
>>>>>> appropriate location I found end up being the load balancer. It did
>>>>>> nicely fit there, bit I think it is still not natural to say that CB
>>>>>> is a LB strategy.
>>>>>>
>>>>>> This time I decided to use a component as I think hystrix is only one
>>>>>> implementation of CB.
>>>>>>
>>>>>> In addition, hystrix does not implement only CB, but more and more
>>>>>> things, which I find confusing. It does bulkheading (which is fine),
>>>>>> but also request collapsing, and also caching.
>>>>>> For something like request collapsing, the more natural way would be
>>>>>> to have aggregator in Camel, and for the caching it would be better if
>>>>>> we had caching DSL with various implementations (very importantly:
>>>>>> distributed cache).
>>>>>>
>>>>>> I think for CB we need a new EIP, and not LB and a component. Hystrix
>>>>>> can be an implementation of the EIP. And it might be better if the
>>>>>> caching, request collapsing concepts are not mixed with the CB EIP.
>>>>>>
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 6 April 2016 at 07:43, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>>>>>> There is some pros with being an endpoint configuration only, as it
>>>>>>> can make it easy for tooling and some developers to use it (when they
>>>>>>> are used to configure uris, and just use from -> to -> to etc). I
>>>>>>> guess the bit unusual part is that you refer to endpoint by id's which
>>>>>>> is not so commonly in use by Camel.
>>>>>>>
>>>>>>> You could also have CB as a kind of error handler, aka onException,
>>>>>>> but have it as onCircuitBreaker, where you can setup those breaker
>>>>>>> configs and fallback routes / endpoint etc. And whether to use a
>>>>>>> fallback or reject or whatnot.
>>>>>>>
>>>>>>> Just a quick pseudo code / braindump
>>>>>>>
>>>>>>> <onCurcuitBreaker threshold="2" halfOpenAfter="1000">
>>>>>>>    <exception>IOException</exception>
>>>>>>>    <to uri="bean:fallbackStuff"/>
>>>>>>> </onCurcuitBreaker>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Apr 4, 2016 at 6:07 PM, Preben.Asmussen <p...@dr.dk> wrote:
>>>>>>>> Hi bibryam
>>>>>>>>
>>>>>>>> At first glance it looks a bit intrusive when the usual endpoints are
>>>>>>>> 'wrapped' in the hystrix endpoint.
>>>>>>>>
>>>>>>>> Could it be something like -> psudo code
>>>>>>>>
>>>>>>>> <camelContext id="hystrix-producer"
>>>>>>>> xmlns="http://camel.apache.org/schema/blueprint";>
>>>>>>>>         <hystrix>
>>>>>>>>            <from=&quot;run&quot;/>
>>>>>>>>            <fallback=&quot;http4://www.google.com&quot;/>
>>>>>>>>             .............. other options
>>>>>>>>         </hystrix>
>>>>>>>>
>>>>>>>>         <route>
>>>>>>>>           <from
>>>>>>>> uri="timer://local?fixedRate=true&amp;period=50&amp;repeatCount=5"/>
>>>>>>>>
>>>>>>>>
>>>>>>>>           <to id="run" uri="http4://localhost"/>
>>>>>>>>
>>>>>>>>           <to uri="log:hystrix?level=INFO&amp;showHeaders=true"/>
>>>>>>>>       </route>
>>>>>>>>   </camelContext>
>>>>>>>>
>>>>>>>> /Preben
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> View this message in context: 
>>>>>>>> http://camel.465427.n5.nabble.com/New-camel-hystrix-component-tp5770955p5780454.html
>>>>>>>> Sent from the Camel Development mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Claus Ibsen
>>>>>>> -----------------
>>>>>>> http://davsclaus.com @davsclaus
>>>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Bilgin Ibryam
>>>>>> Camel Committer at ASF & Integration Architect at Red Hat
>>>>>> Blog: http://ofbizian.com | Twitter: @bibryam
>>>>>>
>>>>>> Camel Design Patterns https://leanpub.com/camel-design-patterns
>>>>>> Instant Apache Camel Message Routing http://www.amazon.com/dp/1783283475
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Bilgin Ibryam
>>>>> Camel Committer at ASF & Integration Architect at Red Hat
>>>>> Blog: http://ofbizian.com | Twitter: @bibryam
>>>>>
>>>>> Camel Design Patterns https://leanpub.com/camel-design-patterns
>>>>> Instant Apache Camel Message Routing http://www.amazon.com/dp/1783283475
>>>>
>>>>
>>>>
>>>> --
>>>> 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
>
>
>
> --
> Bilgin Ibryam
> Camel Committer at ASF & Integration Architect at Red Hat
> Blog: http://ofbizian.com | Twitter: @bibryam
>
> Camel Design Patterns https://leanpub.com/camel-design-patterns
> Instant Apache Camel Message Routing http://www.amazon.com/dp/1783283475



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to