在使用kafka,producer可以使用protobuf进行数据的序列化,consumer可以使用protobuf反序列化。
message
如定义如下message:
1 | syntax = "proto3"; |
使用protobuf编译器编译该文件,编译成python语言:
protoc --python_out=. person.proto
编译成功后,生成person_pb2.py
文件。
producer
如下代码,在aiokafka使用protobuf进行序列化:
1 | #!/usr/bin/env python3 |
consumer
如下代码,在aiokafka使用protobuf进行f反序列化:
1 | #!/usr/bin/env python3 |
运行程序
python3 producer_person.py
python3 consumer_person.py
输出如下结果:
name: "lisa"
age: 18
email: "test@gmail.com"
email: "test@qq.com"
email: "test@163.com"
gender: FEMALE
address {
country: "China"
city: "GuangZhou"
}
phone_number {
number: "136********"
}
phone_number {
number: "020-*******"
type: HOME
}
phone_number {
number: "159********"
type: WORK
}