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

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

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]?


[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