使用管理 API 将 Protobuf 消息发布到 Pulsar 模式注册表时出现 500 错误
Posted
技术标签:
【中文标题】使用管理 API 将 Protobuf 消息发布到 Pulsar 模式注册表时出现 500 错误【英文标题】:Get 500 error on posting Protobuf message to Pulsar schema registry using admin API 【发布时间】:2021-11-01 21:59:56 【问题描述】:我正在尝试使用管理员API 将 Protobuf 消息发布到 Pulsar 模式注册表。但我总是收到 500 错误。我想知道这种行为的原因可能是什么。请指教。
网址:http://localhost:8080/admin/v2/schemas/public/new_ns/new_top/schema
有效载荷:
"type": "PROTOBUF",
"schema": "syntax = \"proto3\";\n\npackage com.mycorp.mynamespace;\n\nimport 'google/protobuf/any.proto';\n \nmessage SampleRecord \n\n int32 my_field1 = 1; \n double my_field2 = 2; \n string my_field3 = 3; \n",
"properties":
格式化消息定义:
syntax = "proto3";
package com.mycorp.mynamespace;
import 'google/protobuf/any.proto';
message SampleRecord
int32 my_field1 = 1;
double my_field2 = 2;
string my_field3 = 3;
【问题讨论】:
【参考方案1】:我对 Pulsar 完全不熟悉,但谷歌搜索建议,您应该考虑使用 ComplexType 中的 "schema": "ProtobufNativeSchema"
并且 value 是一个描述符,即
protoc \
--include_imports \
--include_source_info \
--proto_path=. \
--descriptor_set_out=sample_record.pb \
./sample_record.proto
【讨论】:
以上是关于使用管理 API 将 Protobuf 消息发布到 Pulsar 模式注册表时出现 500 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 java 反射自动将值从 java bean 复制到 protobuf 消息对象?
Kafka Connect:如何使用 hdfs sink 连接器将 Kafka 主题的 protobuf 数据发送到 HDFS?