/** * Creates a Kafka AdminClient connected to our test server. * @return Kafka AdminClient instance. */ public AdminClient getAdminClient() { return KafkaAdminClient.create(buildDefaultClientConfig()); }
/** * Create a new AdminClient instance. * @param clusterConfig What cluster to connect to. * @param clientId What clientId to associate the connection with. * @return AdminClient instance. */ public AdminClient create(final ClusterConfig clusterConfig, final String clientId) { // Create a map final Map<String, Object> config = configUtil.applyCommonSettings(clusterConfig, clientId); // Build admin client. return KafkaAdminClient.create(config); }
/** * Create new topic if not exists * * @param name topic name * @param partitions * @param rf replication factor * @param prop properties */ public static final void createTopic(final String name, final int partitions, final short rf, final Properties prop) { try (final AdminClient adminClient = KafkaAdminClient.create(prop)) { try { final NewTopic newTopic = new NewTopic(name, partitions, rf); final CreateTopicsResult createTopicsResult = adminClient.createTopics(Collections.singleton(newTopic)); createTopicsResult.values().get(name).get(); } catch (InterruptedException | ExecutionException e) { if (!(e.getCause() instanceof TopicExistsException)) { throw new RuntimeException(e.getMessage(), e); } // TopicExistsException - Swallow this exception, just means the topic already exists. } } }
properties.put("connections.max.idle.ms", 10000); properties.put("request.timeout.ms", 5000); try (AdminClient client = KafkaAdminClient.create(properties)) { ListTopicsResult topics = client.listTopics(); Set<String> topicsNames = topics.names().get();
properties.put("connections.max.idle.ms", 10000); properties.put("request.timeout.ms", 5000); try (AdminClient client = KafkaAdminClient.create(properties))