Hi, I configured the sequencer as active-active node in EKS to share the workloads.
I noticed one of the pods is almost overloaded while the usage in other pod is low.
Sequencer Node 1:
Sequencer Node 2:
How should I set it up so that both nodes can run and execute the jobs in parallel ?
How are the nodes (participants and mediators) currently connecting to the sequencers? If you use some_node.domains.connect_multi(url1, url2)
, it’ll go round-robin upon failure only. So all requests will go to url1
until url1
fails at which point it’ll try url2
. So if you have used this method and always have the urls in the same order, all requests will hit url1
. In our docs, this is called “client-side load balancing” though it doesn’t really balance load, but rather manage failover. That’s why it’s in the HA docs.
If you want to do actual load balancing, eg by sending every second request to url1 and every second request to url2, you need to insert an actual load balancer component as shown in the top diagram on the page linked above.
If you have multiple nodes that cause roughly even load (eg multiple participants and mediators), you can also deliberately connect some nodes to url1 first and some to url2 first. But this won’t survive a sequencer failover because all nodes will switch over to the healthy sequencer and stay there until it’s no longer healthy.