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