> I'm not clear on the role which the proxies would play.  Can you clarify
that?

I believe today it is doable in a network of brokers fashion doing store
and forward. If I store then I'd need backups and the point is lost.

I was wondering if such a thing as a store-and-forward minus the store part
(hence the no queues) was possible at all, but I am conscious it's a bit of
a stretch request.

> In general, if you had a broker with no queues then any client trying to
> send message to that broker would fail.  Neither the connections nor the
> messages would somehow pass through that broker to another broker.

I see, I'll probably have to think about something custom at the network
layer instead of the k8s constructions, haproxy or similar. Or perhaps I
should stick to AMQP only and use the qpid proton dispatcher.

Thanks

2018-06-27 11:14 GMT-07:00 Justin Bertram <jbert...@apache.org>:

> I'm not clear on the role which the proxies would play.  Can you clarify
> that?
>
> In general, if you had a broker with no queues then any client trying to
> send message to that broker would fail.  Neither the connections nor the
> messages would somehow pass through that broker to another broker.
>
>
> Justin
>
> On Tue, Jun 26, 2018 at 11:25 PM, Victor <victor.rom...@gmail.com> wrote:
>
> > I'm still playing with different topologies of ActiveMQ Artemis in
> > Kubernetes. An almost satisfactory one (also playing with colocated but
> > anti-affinity is difficult there) is to have master and slaves paired in
> > two stateful sets:
> >
> >         +-----------------------+
> >         |                       |
> >         |                       |
> >         |                       |
> > +-------+--------+     +--------+-------+
> > |artemis master 1|     |artemis master 2|
> > +----------------+     +--------+ ------+
> >         |group-name=artemis-1   |
> >         |                       |
> >         v   group-name=artemis-2|
> > +-------+--------+     +------> --------+
> > |artemis slave 1 |     |artemis slave 2 |
> > +----------------+     +----------------+
> >
> > Note that this configuration also has inter-pod anti-affinity
> > <https://kubernetes.io/docs/concepts/configuration/assign-pod-node/>
> > between master and slaves do they don't end up working on the same
> physical
> > node. Also, there is a disruption budget
> > <https://kubernetes.io/docs/concepts/workloads/pods/disruptions/> of
> just
> > one and only one master or slave could be down at the same time without
> > involving data loss.
> >
> > This could be acceptable as version 1, as it might be useful for many
> > users. However, I found a little thing that is usually fine but seems to
> be
> > bothersome for Kubernetes. Slaves do not open ports nor serve traffic
> while
> > they are just being slaves. Kubernetes have one special nuance in terms
> of
> > load balancing, the load balancer does not check for the pods to be
> > healthy. Its Kubernetes itself doing two checks, liveness (should I
> restart
> > you?) and readiness (are you ready?). the readiness mean both I'm started
> > and also I'm ready to receive traffic. Given that slaves do not open
> ports
> > they won't typically be ready (if they where the load balancer would
> route
> > to them and those request would fail). And thus, the helm chart present
> > weird behaviors like for instance the following:
> >
> > helm install activemq-artemis --wait
> >
> > Will timeout, as --wait will try to wait for every pod to be in ready
> > state. Unless I go for much more sophisticated balancing solutions this
> is
> > mostly unavoidable and undesirable.
> >
> > One possible solution I have contemplated might be perhaps a bit too
> > creative and I'd preferred to run it here before executing. What If I set
> > up a cluster of Artemis with no persistence, no local queues and just
> core
> > connections to the real servers:
> >
> >
> >           +-----load balancer----+
> >           |                      |
> >           |                      |
> >           |                      |
> >           |                      |
> >     +--proxy 1--+         +---proxy 2--+
> >     |           |         |            |
> >     |           |         |            |
> >     |           |         |            |
> >     |           |         |            |
> >     |           |         |            |
> >  master 1    slave 1    master 2   slave 2
> >
> >
> > With my limited understanding, I believe those mostly stateless Artemis
> > would act as a proxy just as I wanted to wrap the needs of Kubernetes
> into
> > a proxy with no need of new code.
> >
> > Is this assumption right? Would there be a risk of data loss? I assume
> > there would be unless I activate persistence, would there be a
> work-around
> > for this?
> >
> > Thanks!
> >
>

Reply via email to