Creating Topic ZooKeeper/Kafka Server: Apache ZooKeeper is a software project of the Apache Software Foundation. It is essentially a service for distributed systems offering a hierarchical key-value store, which is used to provide a distributed configuration service, synchronization service, and naming registry for large distributed systems.
The topic will be created in ZooKeeper.
Data is inserted into partitions created in topic with Kafka server, we can create any number of Topics and we can any number of partitions in a topic
How to Create a Topic in ZooKeeper?
Create the maven project with below dependency
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.12</artifactId> <version>2.3.1</version> </dependency>Create the class with name TopicCreation.java
import java.util.Properties; import kafka.admin.AdminUtils; import kafka.admin.RackAwareMode; import kafka.utils.ZKStringSerializer$; import kafka.utils.ZkUtils; import org.I0Itec.zkclient.ZkClient; import org.I0Itec.zkclient.ZkConnection; public class TopicCreation { public static void main(String[] args) throws Exception { ZkClient zkClient = null; ZkUtils zkUtils = null; try { String zookeeperHosts = "127.0.0.1:2181"; // If multiple zookeeper then -> String zookeeperHosts = "host1:2181,host2:2181"; int sessionTimeOutInMs = 15 * 1000; // 15 secs int connectionTimeOutInMs = 10 * 1000; // 10 secs zkClient = new ZkClient(zookeeperHosts, sessionTimeOutInMs, connectionTimeOutInMs, ZKStringSerializer$.MODULE$); zkUtils = new ZkUtils(zkClient, new ZkConnection(zookeeperHosts), false); // creating topic name // we are creating testTopic topic name String topicName = "testTopic"; // No of partitions count int noOfPartitions = 1; int noOfReplication = 1; Properties topicConfiguration = new Properties(); AdminUtils.createTopic(zkUtils, topicName, noOfPartitions, noOfReplication, topicConfiguration, RackAwareMode.Enforced$.MODULE$ ); } catch (Exception ex) { ex.printStackTrace(); } finally { if (zkClient != null) { zkClient.close(); } } } }Generally, ZooKeeper runs on 2181 Port if your ZooKeeper runs on different port change accordingly.
We can give multiple ZooKeeper Hosts with respective port no.
Run the class as Java application to create Topic in
Also Read: Kafka Consumer Examples Using Java
Creating Topic Zookeeper/Kafka Server