diff --git a/lib/kafka_ex/new/client.ex b/lib/kafka_ex/new/client.ex index 638339e4..19cca6f9 100644 --- a/lib/kafka_ex/new/client.ex +++ b/lib/kafka_ex/new/client.ex @@ -442,7 +442,9 @@ defmodule KafkaEx.New.Client do end defp first_broker_response(request, brokers, timeout) do - Enum.find_value(brokers, fn broker -> + brokers + |> Enum.shuffle() + |> Enum.find_value(brokers, fn broker -> if Broker.connected?(broker) do try_broker(broker, request, timeout) end diff --git a/lib/kafka_ex/server.ex b/lib/kafka_ex/server.ex index 5612fbd8..abb9d087 100644 --- a/lib/kafka_ex/server.ex +++ b/lib/kafka_ex/server.ex @@ -974,7 +974,9 @@ defmodule KafkaEx.Server do end defp first_broker_response(request, brokers, timeout) do - Enum.find_value(brokers, fn broker -> + brokers + |> Enum.shuffle() + |> Enum.find_value(fn broker -> if Broker.connected?(broker) do # credo:disable-for-next-line Credo.Check.Refactor.Nesting case NetworkClient.send_sync_request(broker, request, timeout) do