Replies: 3 comments 3 replies
-
hey Olivier, In that situation, I think a proper messaging system with proper ack and replay would be useful so that new instances canc atch up on your commands (e.g. the log changes). But if you still want to stick with what you have in mind, yes jgroups (that's the key library for this kind of operation) or the vert.x clustering/bus would be what I would explored. Unfortunately before of what I said above we have not explored nor documented much these two paths. @tsegismont might know about Quarkus + vert.x bus for that use case |
Beta Was this translation helpful? Give feedback.
-
@omasseau The infinispan team is managing a separate quarkus extensions including an embedded infinispan extension. see |
Beta Was this translation helpful? Give feedback.
-
hello。 is there has any solution to solve this? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
Is there an easy way to communicate between all instances of a Quarkus app ?
In my case I need to send simple commands to all the nodes of the cluster (ex: a command to ask for a local cache invalidation on each node, a command to change the log level of a given category on each node, ...)
Before using Quarkus I was using Wildfly which allowed to easily communicate between each node by using the Wildfly clustering API.
I would like to implement something similar in Quarkus but I don't know what is the best solution.
I know I could use quarkus messaging and spin up a message broker, but for me this is not an ideal solution. I would like some sort of direct communication between the application nodes without having to rely on another dedicated server that must be started and that could be a single point of failure.
For cache invalidation I could use infinispan, but again, I don't want to rely on a distributed cache and have to start a dedicated Infinispan server (And I understood that Infinispan embedded extension is not supported anymore).
Local caches are enough for my use case. I just need a way to send a message on each node to ask them to invalidate their local cache.
So is there any alternatives that don't require having to start an intermediate server just for communicating with other instances ?
I've read about jgroups and it seems that this is wat is used by Keycloak for clustering (Keycloak relies on Quarkus). But I don't really know if there are easier alternatives.
I've also read about Vert.X event bus. It seems there is a way to make it clustered if I look at the possible configuration :

But I don't see any documentation on how to configure the Vert.X cluster.
In Vert.X documentation they talk about the need to have a cluster manager configured for Vert.X : https://vertx.io/docs/vertx-core/java/#_cluster_managers
Which cluster manager does Quarkus use ? Is it possible to choose the implementation of the cluster manager in Quarkus ? How can this cluster manager be associated to Vert.X instance used for the event bus ?
EDIT: In the meantime I've found this to configure Vert.x clustered : https://stackoverflow.com/a/76464489/1879731
Note sure though if Vert.X is the appropiate solution to use to communicate between nodes ?
Beta Was this translation helpful? Give feedback.
All reactions