cluster/zeromq: Add support for configurable overflow_policy

The current ZeroMQ default behavior is to block when the local XPUB queue
is full. This commit adds a Cluster::Backend::ZeroMQ::overflow_policy
setting to support dropping messages locally if the XPUB socket's queue
reaches its HWM. Note that Cluster::publish() will continue to return
T because the dropping happens in a separate thread.
This commit is contained in:
Arne Welzel 2025-06-30 19:07:19 +02:00
parent 49d16ad6e1
commit f95c7e3499
13 changed files with 482 additions and 14 deletions

View file

@ -0,0 +1,18 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
B nodes_up, 2
B nodes_up, 3
B nodes_up, 4
nodes_down, 2
nodes_down, 3
nodes_down, 4
drop_c, {
[proxy] = 0,
[worker-2] = 0,
[worker-1] = 0
}
last_c, {
[proxy] = 50000,
[worker-2] = 50000,
[worker-1] = 50000
}
GOOD: Observed no XPUB blocks on manager

View file

@ -0,0 +1,4 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
start, XXXXXXXXXX.XXXXXX
zeek_done, XXXXXXXXXX.XXXXXX
GOOD: Observed XPUB blocks

View file

@ -0,0 +1,4 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
start, XXXXXXXXXX.XXXXXX
zeek_done, XXXXXXXXXX.XXXXXX
GOOD: Observed XPUB blocks

View file

@ -0,0 +1,4 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
start, XXXXXXXXXX.XXXXXX
zeek_done, XXXXXXXXXX.XXXXXX
GOOD: Observed XPUB blocks