public function produce($topic, $payload, $configs = []) { $partition = isset($configs['partition']) ? $configs['partition'] : RD_KAFKA_PARTITION_UA; if (isset($configs['config'])) { $topic = $this->producer->newTopic($topic, $configs['config']); } else { $topic = $this->producer->newTopic($topic); } $topic->produce($partition, 0, $payload); }
/** * @param ProducerConfiguration|null $producerConfiguration * @return ProducerTopicFacade */ public function createProducerTopicFacade($topic, ProducerConfiguration $producerConfiguration = null) { if (null === $producerConfiguration) { $producerConfiguration = new ProducerConfiguration(); } if (null === $this->rdKafkaProducer) { $this->rdKafkaProducer = $this->createProducer(); } return new ProducerTopicFacade($this->rdKafkaProducer->newTopic($topic, $producerConfiguration->toRdKafkaTopicConfig())); }
/** * @return ProducerTopic */ private function buildProducerTopic() { $producer = new Producer(); $producer->addBrokers(self::BROKER); /** @var ProducerTopic $producerTopic */ $producerTopic = $producer->newTopic(self::TOPIC); $producerTopic->produce(self::PARTITION, 0, 'initial message for a topic creation'); return $producerTopic; }