Search in sources :

Example 6 with PulsarKafkaConsumer

use of org.apache.kafka.clients.consumer.PulsarKafkaConsumer in project incubator-pulsar by apache.

the class KafkaConsumerTest method testSimpleConsumer.

@Test
public void testSimpleConsumer() throws Exception {
    String topic = "persistent://sample/standalone/ns/testSimpleConsumer";
    Properties props = new Properties();
    props.put("bootstrap.servers", lookupUrl.toString());
    props.put("group.id", "my-subscription-name");
    props.put("enable.auto.commit", "false");
    props.put("key.deserializer", StringDeserializer.class.getName());
    props.put("value.deserializer", StringDeserializer.class.getName());
    Consumer<String, String> consumer = new PulsarKafkaConsumer<>(props);
    consumer.subscribe(Arrays.asList(topic));
    Producer<byte[]> pulsarProducer = pulsarClient.newProducer().topic(topic).create();
    for (int i = 0; i < 10; i++) {
        Message<byte[]> msg = MessageBuilder.create().setKey(Integer.toString(i)).setContent(("hello-" + i).getBytes()).build();
        pulsarProducer.send(msg);
    }
    AtomicInteger received = new AtomicInteger();
    while (received.get() < 10) {
        ConsumerRecords<String, String> records = consumer.poll(100);
        records.forEach(record -> {
            assertEquals(record.key(), Integer.toString(received.get()));
            assertEquals(record.value(), "hello-" + received.get());
            received.incrementAndGet();
        });
        consumer.commitSync();
    }
    consumer.close();
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) StringDeserializer(org.apache.kafka.common.serialization.StringDeserializer) PulsarKafkaConsumer(org.apache.kafka.clients.consumer.PulsarKafkaConsumer) Properties(java.util.Properties) Test(org.testng.annotations.Test)

Aggregations

Properties (java.util.Properties)6 PulsarKafkaConsumer (org.apache.kafka.clients.consumer.PulsarKafkaConsumer)6 StringDeserializer (org.apache.kafka.common.serialization.StringDeserializer)6 Test (org.testng.annotations.Test)6 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)5 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Consumer (org.apache.kafka.clients.consumer.Consumer)1 OffsetAndMetadata (org.apache.kafka.clients.consumer.OffsetAndMetadata)1 TopicPartition (org.apache.kafka.common.TopicPartition)1 PropertyAdmin (org.apache.pulsar.common.policies.data.PropertyAdmin)1