/** * * @param ClusterMetadataInterface|null $clusterMetadata * @param \RdKafka\Conf|null $config */ public function __construct(ClusterMetadataInterface $clusterMetadata = null, \RdKafka\Conf $config = null) { if (empty($config)) { $config = new \RdKafka\Conf(); } if (!empty($clusterMetadata)) { $brokers = $clusterMetadata->getBrokers(); $brokers = array_map(function ($broker) { return sprintf('%s:%d', $broker['host'], $broker['port']); }, $brokers); $config->set('metadata.broker.list', implode(',', $brokers)); } parent::__construct($config); }