자바로 프로그램 적 카프카 항목의 존재 여부를 확인

mjuarez :

주제는 프로그래밍 방식, 카프카 클러스터에 생성되었는지 어떻게 알 수 없이 CLI 도구를 사용하고, 주제에 생산을 시도하기 전에?

항목이 존재하지 않는 경우 내가 문제로 실행 해요, 우리의 응용 프로그램이 존재하지 않는 항목을 생산하기 위해 노력하고 있지만, 90 만 초 (메타 데이터 타임 아웃) 후 통지. 나는 우리가 메시지를 보내려고 시도하기 전에 실제로 확인할 수 있습니다 그래서 주제는 자바 코드 내에서, 존재하거나하지 않을 경우 알 수있는 방법이 있는지 알고 싶습니다. 나는 카프카 CLI가 사용을 UTILS하는 코드를 볼 수도 있겠죠,하지만 어쩌면 API 또는 내가 놓친 수 쉬운 방법이 있는지 궁금 해서요.

amethystic :

당신은 사용할 수 AdminClient#listTopics()주어진 주제에 존재하는 경우 다음과 같이 확인할 수 :

Properties props = new Properties();
props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
try (AdminClient client = AdminClient.create(props)) {
    ListTopicsOptions options = new ListTopicsOptions();
    options.listInternal(true); // includes internal topics such as __consumer_offsets
    ListTopicsResult topics = client.listTopics(options);
    Set<String> currentTopicList = topics.names().get();
    // do your filter logic here......
}

추천

출처http://43.154.161.224:23101/article/api/json?id=225081&siteId=1