实时获取kafka的topic

一、定义一个server.properties存储kafka连接的ip与端口

#zookeeper的访问ip和端口
host=*****
port=****

二、定义一个工具类LoadPropertiesByCode

public class LoadPropertiesByCode  {
    /**
     * 通过key获取properties配置文件的value
     *
     * @param code
     * @return value
     */
    public static String getTextByCode(String code) {

        ResourceBundle bundle = ResourceBundle.getBundle("kafka-config.server");
        return bundle.getString(code);

    }
}

三、写一个实时获取kafka-topic的接口

@Api(value = "BdgAccessResourceKafkaTopic数据接入kafka主题", tags = "数据接入")
@RestController
@RequestMapping("/kafka")
public class BdgAccessResourceKafkaTopicController {

    @ApiOperation(value = "获取所有的kafka topic")
    @GetMapping(value = "/getAllKafkaTopic")

    public ResultObject<List<String>> getAllKafkaTopic() {

        //读取配置文件IP和端口
        String host = LoadPropertiesByCode.getTextByCode("host");
        String port = LoadPropertiesByCode.getTextByCode("port");

        List<String> list =  new ArrayList<>();
        ZkUtils zkUtils = ZkUtils.apply(host + ":" + port, 30000, 30000, JaasUtils.isZkSecurityEnabled());
        Map<String, Properties> topics = JavaConverters.mapAsJavaMapConverter(AdminUtils.fetchAllTopicConfigs(zkUtils))
                .asJava();
        for (Map.Entry<String, Properties> entry : topics.entrySet()) {
            String key = entry.getKey();
            list.add(key);
        }
        zkUtils.close();
        return ResultObject.success(list);
    }

}

四,接口返回的数据

{
  "msg": "success",
  "code": 0,
  "data": [
    "wormhole_heartbeat",
    "x_test",
    "wormhole_feedback",
    "source",
    "dataInfo",
    "x-kafka"
  ]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值