git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [artemis] Dynamically add cluster connection using JMX/Jolokia?


Thanks guys,

I will definitely try the JGroups configuration with KUBE_PING.

I'll keep an eye on the list for possible clustering updates and in the
meantime, I will try to do my best with the helm chart and JGroups.

In the big scheme of things, what I'm trying to do is to have a Docker
image eventually worthy of being official and a Helm chart good enough to
be included in the official helm charts repository to drive more adoption
of Artemis in the cloud native world.


2018-06-07 8:15 GMT-07:00 Christopher Shannon <
christopher.l.shannon@xxxxxxxxx>:

> As Justin says there is currently no way to add a cluster connection
> dynamically.  However, I also have a use case where it would be nice to be
> able to dynamically add or destroy a cluster connection.  I will probably
> take a look when I get some time to see if there's a way that the behavior
> can be supported but it probably won't be easy to do with the current
> design.
>
> On Thu, Jun 7, 2018 at 10:09 AM Justin Bertram <jbertram@xxxxxxxxxx>
> wrote:
>
> > There is no programmatic way to add a cluster-connection.  The
> > cluster-connection is such a fundamental piece of the broker's
> > configuration it really has to be there when the broker starts.  Also,
> > there is no mechanism to persist a cluster-connection configuration other
> > than in the XML (unlike addresses and queues which can be created at
> > runtime and are persisted, if necessary, in the bindings journal).
> >
> > As for the actual clustering mechanism, have you tried using a JGroups
> > configuration with KUBE_PING [1]?
> >
> >
> > Justin
> >
> > [1] https://github.com/jgroups-extras/jgroups-kubernetes
> >
> > On Thu, Jun 7, 2018 at 1:53 AM, Victor <victor.romero@xxxxxxxxx> wrote:
> >
> > > Hi all,
> > >
> > > I'm having some fun trying to figure out the ideal way to deploy an
> > > ActiveMQ Artemis cluster in Kubernetes.
> > >
> > > I started by creating a Helm Chart (think of it as a deb/rpm package
> for
> > > Kubernetes) where I can just install a Symmetric cluster of 8 nodes
> with
> > > the following commands:
> > >
> > >   helm repo add activemq-artemis https://vromero.github.io/
> > > activemq-artemis-helm/
> > >   helm install vromero/activemq-artemis --set replicas=8
> > >
> > > It works pretty well but I'm creating static-connectors for the cluster
> > > connection at the install time. Meaning that if later the user wants to
> > > scale up or down his cluster it won't work.
> > >
> > > I have been exploring these two ideas to overcome it:
> > >
> > > - ActiveMQ Artemis Plugin to enable auto-discover by connecting to the
> > > Artemis to the Kubernetes api
> > > - To have an external minimal agent written in Go (given that it has
> the
> > > best client library for k8s and it has a very small binary / memory
> > > footprint) that connects to k8s and let know Artemis from the outside
> > which
> > > other nodes are available for the cluster.
> > >
> > > After a quick look at the first option, the one of the plugin, I
> decided
> > to
> > > keep it as plan B given that a hypothetically big cluster might end up
> > > pounding too hard the Kubernetes API and especially given that the
> > > Kubernetes client would bring a not too big but neither too small
> number
> > of
> > > transitive dependencies to Artemis.
> > >
> > > So off I went with the external agent to now realize that at least at a
> > > quick glance at the JMX/Jolokia API I see no method to add new
> > > cluster-connections. So my question would be:
> > >
> > > Is there any way to add externally cluster-connections to Artemis?
> > >
> > > I'm hoping that this belongs to the dev list as it is kind-of advanced
> if
> > > it actually belongs to user I apologise
> > >
> > > Thanks
> > >
> >
>