I did more investigation while creating an oslo.messaging test case that reproduces the problem.
1) the rabbit driver uses kombu and the kombu interface allows defining max_retries for the connection attempt too but the rabbit driver does not use it. So the rabbit driver is fixable.
2) the kafka driver uses confluen_kafka and the producer interface[1] of that module is defined as asynchronous. Today the kafka driver simply ignores the retry parameter[2] for message sending. So fixing the kafka driver is not that simple.
I did more investigation while creating an oslo.messaging test case that reproduces the problem.
1) the rabbit driver uses kombu and the kombu interface allows defining max_retries for the connection attempt too but the rabbit driver does not use it. So the rabbit driver is fixable.
2) the kafka driver uses confluen_kafka and the producer interface[1] of that module is defined as asynchronous. Today the kafka driver simply ignores the retry parameter[2] for message sending. So fixing the kafka driver is not that simple.
[1] https:/ /docs.confluent .io/platform/ current/ clients/ confluent- kafka-python/ html/index. html#confluent_ kafka.Producer. produce /github. com/openstack/ oslo.messaging/ blob/feb72de7b8 1e3919dedc697f9 fb5484a92f85ad8 /oslo_messaging /_drivers/ impl_kafka. py#L290
[2] https:/