Connect AMQP native apps?

80 views
Skip to first unread message

Barry Kaplan

unread,
Oct 6, 2020, 10:44:13 AM10/6/20
to Skupper
If I already have apps communicating over AMQP, can I reuse the scupper network routers directly?

Or maybe I should ask,  if I connected ampq apps would the AMQP messages get delivered within another layer of AMQP?

Gordon Sim

unread,
Oct 6, 2020, 10:51:52 AM10/6/20
to Barry Kaplan, Skupper
On 06/10/2020 3:44 pm, Barry Kaplan wrote:
> If I already have apps communicating over AMQP, can I reuse the scupper
> network routers directly?

Yes. To connect over AMQP you need to authenticate with a valid SSL
certificate. The skupper secret has everything in it you need. If you
mount that to /etc/messaging then some clients will automatically use
the right values when you do a connect() with no arguments (specifically
rhea javascript client, apache qpid proton c++ and apache qpid proton
python).

> Or maybe I should ask,  if I connected ampq apps would the AMQP messages
> get delivered within another layer of AMQP?

Not sure what you mean by 'another layer'?

Barry Kaplan

unread,
Oct 6, 2020, 11:12:53 AM10/6/20
to Skupper
> 'another layer'?

This is my (muddy) understanding:

If I connect two, eg http apps via skupper, the http will be wrapped in amqp messages across the clusters. So I if connected two ampq apps (eg, a hono adapter on the edge to an amqp broker in the cloud), would the amqp protocol be wrapped in another layer of amqp across the clusters?

Barry Kaplan

unread,
Oct 6, 2020, 11:14:40 AM10/6/20
to Skupper
I guess I should say "expose the amqp app in cloud-1 to cloud-2" vs "connect"... ?

Gordon Sim

unread,
Oct 6, 2020, 1:27:29 PM10/6/20
to Barry Kaplan, Skupper
On 06/10/2020 4:12 pm, Barry Kaplan wrote:
> > 'another layer'?
>
> This is my (muddy) understanding:
>
> If I connect two, eg http apps via skupper, the http will be wrapped in
> amqp messages across the clusters.

The http request is mapped to an AMQP message, which is then routed to
any receiver (e.g. an exposed http service on skupper).

> So I if connected two ampq apps (eg,
> a hono adapter on the edge to an amqp broker in the cloud), would the
> amqp protocol be wrapped in another layer of amqp across the clusters?

No, the amqp message will be transmitted as is, there is no need for
mapping in that case.

(You can in fact write a service that receives the amqp messages
representing http requests, and send back an amqp message in the right
format for a n http response and an http client using skupper would be
able to consume that service . Likewise you could send an amqp message
in the right format for an http request and have an actual skupper
exposed http service handle it).

Barry Kaplan

unread,
Oct 6, 2020, 5:31:19 PM10/6/20
to Skupper
Excellent! I can't seem to find any documentation on the actual values allowed for --protocol. Would I expose the service using `--protocol amqp` and then it would be pass thru wrt to protocol?

If I wanted to connect the edge to an enmasse deployed router would it have to look like

```
edge-app -> edge-skupper-qpid ----> cloud-skupper-qpid -> cloud-enmasse-qpid
```
or maybe 
```
edge-app -> edge-skupper-qpid ----> cloud-skupper-qpid -> cloud-enmasse-artemis
```


Gordon Sim

unread,
Oct 6, 2020, 5:46:46 PM10/6/20
to sku...@googlegroups.com
On 06/10/2020 10:31 pm, Barry Kaplan wrote:
> Excellent! I can't seem to find any documentation on the actual values
> allowed for --protocol. Would I expose the service using `--protocol
> amqp` and then it would be pass thru wrt to protocol?

No, at present you would have to connect to the router directly. The
skupper expose command currently only deals with http or tcp (you should
get the valid values if you do skupper expose --help).

> If I wanted to connect the edge to an enmasse deployed router would it
> have to look like
>
> ```
> edge-app -> edge-skupper-qpid ----> cloud-skupper-qpid -> cloud-enmasse-qpid
> ```
> or maybe
> ```
> edge-app -> edge-skupper-qpid ----> cloud-skupper-qpid ->
> cloud-enmasse-artemis
> ```

I don't think skupper will work with enmasse as things stand. There is
no way to configure the skupper to establish amqp links to some external
process, nor is there any way at present to configure waypoints or other
aspects of addressing.

However I believe enmasse has some alternative way of connecting address
spaces?

Message has been deleted

Barry Kaplan

unread,
Oct 6, 2020, 5:54:24 PM10/6/20
to Skupper
If skupper expose only supports tcp and http, I don't follow how I would configure

edge-amq-client --<<amqp>>--> edge-skupper-qpid --<<amqp:internet>>--> cloud-skupper-qpid --<<amqp>>--> cloud-ampq-client

Can any of examples be modified for this scenario?

Barry Kaplan

unread,
Oct 6, 2020, 5:54:54 PM10/6/20
to Skupper
(I was only using enmasse as an example)

Gordon Sim

unread,
Oct 6, 2020, 5:57:58 PM10/6/20
to sku...@googlegroups.com
On 06/10/2020 10:54 pm, Barry Kaplan wrote:
> If skupper expose only supports tcp and http, I don't follow how I would
> configure
>
> edge-amq-client --<<amqp>>--> edge-skupper-qpid --<<amqp:internet>>-->
> cloud-skupper-qpid --<<amqp>>--> cloud-ampq-client

For the above case you just configure the clients to connect to the
respective routers (using the cert/key in the skupper secret in each
namespace), and open links for the desired address.

Barry Kaplan

unread,
Oct 6, 2020, 6:17:34 PM10/6/20
to Skupper
Perfect. I will play with it. Thanks very much for the help!
Reply all
Reply to author
Forward
0 new messages