/sample-kafka-php-consumer

Sample PHP RdKafka consumer

Primary LanguagePHP

Kafka PHP Consumer

A simple example of a PHP script consuming from a kafka topic

  • Strimzi 0.27.0
  • Kafka 3.0.0
  • Php 7.4
  • RdKafka 6.0.1

Usage

Start all

docker-compose up

After a while you should see the success message from the php script

consumer_1   | Assign: array(1) {
consumer_1   |   [0]=>
consumer_1   |   object(RdKafka\TopicPartition)#6 (4) {
consumer_1   |     ["topic"]=>
consumer_1   |     string(10) "test-topic"
consumer_1   |     ["partition"]=>
consumer_1   |     int(0)
consumer_1   |     ["offset"]=>
consumer_1   |     int(-1001)
consumer_1   |     ["err"]=>
consumer_1   |     int(0)
consumer_1   |   }
consumer_1   | }

Produce some messages

docker run --rm -it --network kafka-php-consumer_default quay.io/strimzi/kafka:0.27.0-kafka-3.0.0 /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server kafka:9092 --topic test-topic

Each time the consumer receive a message it will print to the stdout

consumer_1   | object(RdKafka\Message)#7 (10) {
consumer_1   |   ["err"]=>
consumer_1   |   int(0)
consumer_1   |   ["topic_name"]=>
consumer_1   |   string(10) "test-topic"
consumer_1   |   ["timestamp"]=>
consumer_1   |   int(1653378521177)
consumer_1   |   ["partition"]=>
consumer_1   |   int(0)
consumer_1   |   ["payload"]=>
consumer_1   |   string(4) "foobar"
consumer_1   |   ["len"]=>
consumer_1   |   int(4)
consumer_1   |   ["key"]=>
consumer_1   |   NULL
consumer_1   |   ["offset"]=>
consumer_1   |   int(3)
consumer_1   |   ["headers"]=>
consumer_1   |   array(0) {
consumer_1   |   }
consumer_1   |   ["opaque"]=>
consumer_1   |   NULL
consumer_1   | }

Links