kafka restful方式访问
本文主要介绍如何通过rest api的方式访问kafka。
主要参考:
https://cwiki.apache.org/confluence/display/KAFKA/Clients#Clients-Proxy(HTTPREST,etc)
https://docs.confluent.io/current/kafka-rest/docs/api.html#api-v2
https://docs.confluent.io/current/installation/docker/docs/quickstart.html
好,下面上货。
1、安装kafka-rest proxy
docker run -d \
--net=host \
--name=kafka-rest-docker \
-e KAFKA_REST_ZOOKEEPER_CONNECT=192.168.0.66:42181 \
-e KAFKA_REST_LISTENERS=http://192.168.0.66:48082 \
-e KAFKA_REST_HOST_NAME=192.168.0.66 \
confluentinc/cp-kafka-rest:4.0.0
2、安装成功后可以查看端口48082是否正在监听(根据你启动时候的端口设置,我这里这是的是48082)。
netstat -apn |grep 48082
3、尝试查看kafka中的topics
http://192.168.0.66:48082/topics
返回结果:
[test,test001]
4、尝试向kafka中发送消息
http://192.168.0.66:48082/topics/test
Accept:application/vnd.kafka.v2+json, application/vnd.kafka+json, application/json
Content-Type:application/vnd.kafka.json.v2+json
{
"records": [
{
"value": {"sadfsdf":"dfdd"}
}
]
}
得到的返回响应
{
"offsets": [
{
"partition": 0,
"offset": 346,
"error_code": null,
"error": null
}
],
"key_schema_id": null,
"value_schema_id": null
}
这样就实现了通过rest api的方式向kafka中写入数据了。
在这里说一下,如果是消费的话,还是用正常的kafka c
lient比较好。