Answering to myself

To add multiple destinations to a proxy I just had to separate URLs with a
comma, easy enough :)
proxy-add --lb random /test
http://10.0.200.15:8181/booking,http://10.0.35.203:8181/booking

I really like this solution, we could manage a list of available endpoints
ourselves (maybe based on cellar cluster:service-list since our services
will also be available as DOSGi services) and update proxy accordingly

Thanks for the suggestion !
Regards,
JB


Le mer. 24 juin 2020 à 09:14, Jean-Baptiste Simillon <
jean-baptiste.simil...@keepeek.com> a écrit :

> Hi JB,
>
> I didn't know about the proxy feature, but my idea was for the final
> (micro-services) architecture to have one (or more) karaf instance that
> relays REST requests to karaf instances that have the REST entry point
> declared.
>
> For example :
>
>    - Karaf instance A
>    - Bundle foo declares service on /foo
>       - Bundle bar declares service on /bar
>    - Karaf instance B
>    - Bundle bar declares service on /bar
>    - Karaf instance C
>    - Bundle foo declares service on /foo
>
> Ideally what I wanted is that my REST client could call any instance A,B
> or C and then the call would be relayed to any instance that provides a
> service on the entry point.
> For example :
>
>    - if I call http://C/foo it could be relayed to C/foo or A/foo
>    - if I call http://C/bar it would be relayed to A or B since /bar it's
>    not available locally
>
> Maybe I would need other karaf instances, let's say an instance D that
> will not declare any service locally but would just relay calls, that could
> also work for me.
>
> Do you think such a thing would be possible with cellar (if tweaking cxf
> is possible of course) ?
>
> Or maybe the proxy solution could be interesting if I can automate proxy
> declaration (for example using cellar I could send registration messages on
> hazelcast, or maybe use dosgi or any another solution).
> But I didn't find a way to add two destinations for a single source, I
> tried to call proxy-add twice with the -lb option or adding two urls at
> once but none of these options seems to work.
> Is it possible to add multiple load-balanced destinations for a single
> entry point with the proxy feature ? (so that a call to C/proxied-foo could
> redirect to C/foo or A/foo)
>
> Regards,
> JB
>
>
>
> Le mar. 23 juin 2020 à 17:25, Jean-Baptiste Onofre <j...@nanthrax.net> a
> écrit :
>
>> Hi,
>>
>> FYI, you have the proxy feature in Karaf directly (without Cellar).
>>
>> Rest is using CXF servlet. The CXF servlet should be registered with the
>> flag to be taken by Cellar whiteboard (provided by Aries JAXRS whiteboard).
>> Let me check if it’s possible to tweak the CXF servlet registration made
>> by Aries JAXRS Whiteboard.
>>
>> Regards
>> JB
>>
>> Le 23 juin 2020 à 17:10, Jean-Baptiste Simillon <
>> jean-baptiste.simil...@keepeek.com> a écrit :
>>
>> Hi,
>>
>> I've been trying for hours to make my REST service (that was made thanks
>> to whiteboard) available on cellar http balancer but can't figure out what
>> is not working.
>> So as a last resort I tried to make the karaf-rest-example-whiteboard
>> work, and to my surprise it didn't work either over http balancer.
>>
>> So basically what I do is install 2 karaf with cellar on 2 computers
>> feature:repo-add cellar
>> feature:install cellar
>> feature:install http
>> feature:install http-whiteboard
>> feature:install cellar-http-balancer
>>
>> Then I add the example on one node
>> feature:repo-add
>> mvn:org.apache.karaf.examples/karaf-rest-example-features/LATEST/xml
>> feature:install karaf-rest-example-whiteboard
>>
>> My nodes see each others
>> karaf@root()> cluster:node-list
>>   │ Id               │ Alias │ Host Name   │ Port
>> ──┼──────────────────┼───────┼─────────────┼─────
>> x │ 10.0.35.203:5701 │       │ 10.0.35.203 │ 5701
>>   │ 10.0.200.15:5701 │       │ 10.0.200.15 │ 5701
>>
>> But no services are available on the cluster :
>> karaf@root()> cluster:http-list default
>>
>> Alias │ Locations
>> ──────┼──────────
>> karaf@root()>
>>
>> And when I try to connect through curl it works only from the node where
>> the example is installed.
>> It seems to work fine when I try to use the blueprint example, but I find
>> the whiteboard example way easier to maintain (no xml files needed, just
>> standard annotations). Do you have any idea what could be missing to make
>> the whiteboard example working on cellar http balancer ?
>>
>> Regards
>>
>>
>>
>>
>>
>>

Reply via email to