From 0376db2a7fdcb4378c43224faed94df21ef54084 Mon Sep 17 00:00:00 2001 From: Peter Cornelius Date: Wed, 1 Nov 2017 10:22:05 -0700 Subject: [PATCH 1/5] Change topic names to use '-' instead of '_' so they avoid 409 errors from schema-registry. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 118f4e753..65499b30e 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ value = {"name": "Value"} key = {"name": "Key"} avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schem_registry_host:port'}, default_key_schema=key_schema, default_value_schema=value_schema) -avroProducer.produce(topic='my_topic', value=value, key=key) +avroProducer.produce(topic='my-topic', value=value, key=key) avroProducer.flush() ``` @@ -89,7 +89,7 @@ from confluent_kafka.avro import AvroConsumer from confluent_kafka.avro.serializer import SerializerError c = AvroConsumer({'bootstrap.servers': 'mybroker,mybroker2', 'group.id': 'groupid', 'schema.registry.url': 'http://127.0.0.1:8081'}) -c.subscribe(['my_topic']) +c.subscribe(['my-topic']) running = True while running: try: From 94a0c3670c3b6cd93f036b903a4cfc3e87681c0b Mon Sep 17 00:00:00 2001 From: Peter Cornelius Date: Wed, 1 Nov 2017 10:24:11 -0700 Subject: [PATCH 2/5] Pass the schemas in with the call to `produce` to demonstrate the flexibility of the parameters. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 65499b30e..9ba0abcbe 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,8 @@ key_schema = avro.load('KeySchema.avsc') value = {"name": "Value"} key = {"name": "Key"} -avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schem_registry_host:port'}, default_key_schema=key_schema, default_value_schema=value_schema) -avroProducer.produce(topic='my-topic', value=value, key=key) +avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schem_registry_host:port'}) +avroProducer.produce(topic='my-topic', value=value, key=key, value_schema=value_schema, key_schema=key_schema) avroProducer.flush() ``` From 34b2aca566f4dd11c03e95fbf93d1dcc4fa89f48 Mon Sep 17 00:00:00 2001 From: Peter Cornelius Date: Wed, 1 Nov 2017 10:25:54 -0700 Subject: [PATCH 3/5] Include the schemas with the example code so that the examples can be easily run by cutting and pasting. --- README.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9ba0abcbe..86ae6fa3b 100644 --- a/README.md +++ b/README.md @@ -71,8 +71,37 @@ c.close() from confluent_kafka import avro from confluent_kafka.avro import AvroProducer -value_schema = avro.load('ValueSchema.avsc') -key_schema = avro.load('KeySchema.avsc') + +value_schema_str = """ +{ + "namespace": "my.test", + "name": "value", + "type": "record", + "fields" : [ + { + "name" : "name", + "type" : "string" + } + ] +} +""" + +key_schema_str = """ +{ + "namespace": "my.test", + "name": "key", + "type": "record", + "fields" : [ + { + "name" : "name", + "type" : "string" + } + ] +} +""" + +value_schema = avro.loads(value_schema_str) +key_schema = avro.loads(key_schema_str) value = {"name": "Value"} key = {"name": "Key"} From e2786c29ba55ecf022e497a1d8bd87407b813c9b Mon Sep 17 00:00:00 2001 From: Peter Cornelius Date: Wed, 29 Nov 2017 14:23:09 -0800 Subject: [PATCH 4/5] Fix a typo by adding the letter 'a' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86ae6fa3b..0ffdb8410 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ key_schema = avro.loads(key_schema_str) value = {"name": "Value"} key = {"name": "Key"} -avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schem_registry_host:port'}) +avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schema_registry_host:port'}) avroProducer.produce(topic='my-topic', value=value, key=key, value_schema=value_schema, key_schema=key_schema) avroProducer.flush() ``` From 5dd7bbaf5d045ff81fae282b3ada5286eb442403 Mon Sep 17 00:00:00 2001 From: Peter Cornelius Date: Tue, 27 Mar 2018 16:01:41 -0700 Subject: [PATCH 5/5] Add back the default schemas in the producer example --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0ffdb8410..d2be52a53 100644 --- a/README.md +++ b/README.md @@ -105,8 +105,8 @@ key_schema = avro.loads(key_schema_str) value = {"name": "Value"} key = {"name": "Key"} -avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schema_registry_host:port'}) -avroProducer.produce(topic='my-topic', value=value, key=key, value_schema=value_schema, key_schema=key_schema) +avroProducer = AvroProducer({'bootstrap.servers': 'mybroker,mybroker2', 'schema.registry.url': 'http://schem_registry_host:port'}, default_key_schema=key_schema, default_value_schema=value_schema) +avroProducer.produce(topic='my_topic', value=value, key=key) avroProducer.flush() ``` @@ -118,7 +118,7 @@ from confluent_kafka.avro import AvroConsumer from confluent_kafka.avro.serializer import SerializerError c = AvroConsumer({'bootstrap.servers': 'mybroker,mybroker2', 'group.id': 'groupid', 'schema.registry.url': 'http://127.0.0.1:8081'}) -c.subscribe(['my-topic']) +c.subscribe(['my_topic']) running = True while running: try: