
radarbase/radar-gatewayRADAR-Gateway是Apache Kafka的REST网关,功能类似Confluent提供的REST代理,额外集成了认证授权、内容验证和按需数据解压能力。它支持Avro格式数据的JSON序列化及二进制序列化,可作为Docker镜像部署,适用于需要通过REST API安全、合规地向Kafka集群提交数据的场景。
Content-Encoding: gzip)和Apple LZFSE(Content-Encoding: lzfse)编码的压缩数据。application/vnd.radarbase.avro.v1+binary),提升数据传输效率。适用于需通过REST API向Kafka集群提交数据的场景,尤其适合:
认证与授权通过[RADAR-Auth]库实现,具体配置选项请参考其官方文档。该库负责处理OAuth2 JWT令牌验证、权限范围检查及数据源授权管理。
使用docker-compose启动RADAR-Gateway及依赖组件:
shelldocker-compose up -d --build
待kafka-1服务就绪后,创建数据提交所需的Kafka主题:
shellTOPIC=test docker-compose exec kafka-1 kafka-topics --create --topic $TOPIC --bootstrap-server kafka-1:9092
通过ManagementPortal生成JWT访问令牌,令牌需满足:
MEASUREMENT.CREATE作用域(scope),资源为res_gatewaysources数组声明,列出允许提交数据的sourceIdsub字段需与数据key中的userId一致使用令牌查询可用主题:
shellTOKEN=<从ManagementPortal获取的访问令牌> curl -H "Authorization: Bearer $TOKEN" http://localhost:8090/radar-gateway/topics
提交GZIP压缩的Avro数据(需指定媒体类型和压缩头):
shellcurl -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/vnd.kafka.avro.v2+json" \ -H "Content-Encoding: gzip" \ --data-binary @data.json.gz \ http://localhost:8090/radar-gateway/topics/test
使用二进制Avro格式提交数据(基于RecordSet schema):
shellcurl -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/vnd.radarbase.avro.v1+binary" \ --data-binary @record_set_data.avro \ http://localhost:8090/radar-gateway/topics/test
radar-commons库配置:
javaRestClient.Builder.gzipCompression(true);
radar-commons的RestSender配置:
javaRestSender.Builder.useBinaryContent(true);

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务