Cluster Explanation

Hi there, I want to use the kumo in cluster mode, please let me know how can I do that, my used is that id any of the node goes down then my traffic to be routed to other node, as per my understanding there are two different ways

  1. cluster
  2. using load balancer

for clustering I have questions if an node goes down then do I need to route the traffic to other node manually or is there any way in which kumo can directly route the traffic to other node if yes then which IP will be used to do that

This is the intended use case of a load balancer, to not only keep the workload even, but to be aware of node failures and to route traffic to the remaining nodes.

Please suggest me how to proceed with this as this would help me to implement clustering more effectively.

I’m not a load balancer expert.

not about the load balancer but about the clustering how will kumo behave with ips if the node is down

@passionate-joey

It doesn’t work like an actual cluster as you are expecting.
Rather, it shares a Redis DB in most cases as well as proxies.

You need to have the same config replicated in every instance but there is no message sharing, no using one of the other nodes or anything like that.

Basically, like the docs say, KumoMTA does not re-invent the wheel. But rather uses multiple wheel for everything. You need to take care of steering, wheel balancing etc. yourself.

And if the IPs are down, you are down.

There is no scalable way to implement a shared spool, there are multiple fragile projects that have tried.

Using other nodes does happen when a load balancer and RNAT or proxy are involved.

Yep. That’s what I meant by “You need to take care of steering, wheel balancing etc. yourself.”
ZoneMTA has something like that. Like “send at least once” philosphy and message sharing across cluster. But it falls short on too much of the other stuff.

With Kumo, with a load balancer at the top it does work great, especially combined with health checks.

But when the proxy is down. You’re down for good.

You’re down until the proxy is back up, and you can divide the IP space among multiple proxies to lessen impact.

Yeah, but in the spirit of the original question, “currently” there is no way to share the load. Or re-route the traffic to another load.

And for outgoing traffic, if your proxy is down, you’re down till you either:

  • up your proxy
  • replace it with another one in your configs.

Didn’t try this but…
If you can implement a load balancer for your proxy, that might help though.

Same could be said for the server itself.

True that.

Unless there’s a central DB where the cluster polls the queue from, it’s the same story.

And especially for submission, a load balancer is a must have.