编程启动zookeeper和kafka broker

本文介绍了一种快速启动Kafka和Zookeeper的方法,通过使用Java main函数直接启动,避免了标准部署流程的繁琐。文章提供了必要的Maven依赖配置,包括Dropwizard Metrics、Kafka和Zookeeper的版本信息,并分享了Zookeeper和Kafka Broker的启动类代码。

为了学习或者快速测试,走标准的部署流程用命令行启动太慢,可以直接用java main函数启动

maven 依赖 

        <!-- https://mvnrepository.com/artifact/io.dropwizard.metrics/metrics-core -->
        <dependency>
            <groupId>io.dropwizard.metrics</groupId>
            <artifactId>metrics-core</artifactId>
            <version>4.1.9</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.13</artifactId>
            <version>2.5.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>2.5.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.6.1</version>
        </dependency>

 

配置文件下载链接

zookeeper.properties

server.properties

 

zookeeper启动类(必须先运行)

 

public class ZooKeeperMain {

    @SneakyThrows
    public static void main(String[] args) {

        QuorumPeerConfig config = new QuorumPeerConfig();
        InputStream is = ZooKeeperMain.class.getResourceAsStream("/zookeeper.properties");
        Properties p = new Properties();
        p.load(is);
        config.parseProperties(p);
        ServerConfig serverconfig = new ServerConfig();
        serverconfig.readFrom(config);
        new ZooKeeperServerMain().runFromConfig(serverconfig);
    }
}

kafkabroker启动类(必须在ZookeeperMain之后运行)

public class KafkaBrokerMain {

    @SneakyThrows
    public static void main(String[] args) {
        InputStream is = KafkaBrokerMain.class.getResourceAsStream("/server.properties");
        Properties p = new Properties();
        p.load(is);
        is.close();
        KafkaServerStartable kafkaServerStartable = KafkaServerStartable.fromProps(p);
        kafkaServerStartable.startup();
        kafkaServerStartable.awaitShutdown();
    }
}

 

普通文本型问题,直接回答如下: 你提到的这行命令: ```bash # 启动 ZooKeeper Kafka 服务(略,参考 Kafka 官方快速开始) ``` 是一条说明性注释,表示在实际运行 Kafka 程序前,需要先启动 ZooKeeper Kafka 服务器。以下是完整的 **Linux 环境下启动 ZooKeeper Kafka 服务的具体步骤**(以 Kafka 官方二进制包为例): --- ### 1. 下载并解压 Kafka ```bash wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz tar -xzf kafka_2.13-3.7.0.tgz cd kafka_2.13-3.7.0 ``` > 注:版本号可根据最新版调整。 --- ### 2. 启动 ZooKeeper 服务 Kafka 依赖 ZooKeeper 管理集群元数据(旧版本必需,Kafka 3.0+ 支持 KRaft 模式可选)。 ```bash bin/zookeeper-server-start.sh config/zookeeper.properties & ``` --- ### 3. 启动 Kafka Broker 服务 ```bash bin/kafka-server-start.sh config/server.properties & ``` > 如果使用 KRaft 模式(无需 ZooKeeper),需先生成 node.id 并初始化存储目录,请告知我是否需要该模式配置。 --- ### 4. 创建主题(Topic) ```bash bin/kafka-topics.sh --create \ --topic observer-events \ --bootstrap-server localhost:9092 \ --partitions 1 \ --replication-factor 1 ``` --- ### 5. 验证服务正常 查看主题列表: ```bash bin/kafka-topics.sh --list --bootstrap-server localhost:9092 ``` 应输出: ``` observer-events ``` --- 完成以上步骤后,即可运行之前编写的 C++ 或 Python 生产者/消费者程序。 如需设置后台常驻、开机自启或使用 systemd 管理服务,请进一步提问!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值