暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

kafka Raft单节点安装和启动初体验(去zookeeper)

orchome 2021-10-15
1426

从kafka2.8版本之后,Raft模式已经正式使用了,无需安装zookeeper,本节带大家抢险体验。


Step 1: 下载代码


下载并且解压它。

    tar -xzf kafka_2.13-3.0.0.tgz
    cd kafka_2.13-3.0.0
    复制
    复制


    Step 2: 生成集群id,并格式化存储目录


    生成集群ID

      bin/kafka-storage.sh random-uuid


      Cba3BkapTFWyEKbpUkNJ_w #获取返回的集群ID
      复制
      复制

      格式化存储目录

      复制
        > bin/kafka-storage.sh format -t Cba3BkapTFWyEKbpUkNJ_w -c config/kraft/server.properties
        复制
        输出:
        复制
        复制
          Formatting /tmp/kraft-combined-logs
          复制

          如果是多节点安装,确保每个节点使用的集群ID
          是相同的。


          Step 3: 启动服务

          注意:你的本地环境必须安装有Java 9+。

          复制
            bin/kafka-server-start.sh config/kraft/server.properties &
            复制

            一旦成功启动,那Kafka已经可以使用了。


            Step 4: 创建一个主题(topic)


            创建一个名为“test”的Topic,只有一个分区和一个备份:

              bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
              复制
              创建好之后,可以通过运行以下命令,查看已创建的topic信息:
              复制
              复制
                > bin/kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092
                Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
                Topic: test Partition: 0    Leader: 0   Replicas: 0 Isr: 0
                复制

                复制

                或者,除了手工创建topic外,你也可以配置你的broker,当发布一个不存在的topic时自动创建topic。


                Step 5: 发送消息


                Kafka提供了一个命令行的工具,可以从输入文件或者命令行中读取消息并发送给Kafka集群。每一行是一条消息。

                运行 producer(生产者)
                ,然后在控制台输入几条消息到服务器。

                  > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
                  This is a message
                  This is another message
                  复制

                  复制

                  Step 6: 消费消息


                  Kafka也提供了一个消费消息的命令行工具,将存储的信息输出出来,新打开一个命令控制台,输入:

                    > bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
                    This is a message
                    This is another message
                    复制

                    如果你有2台不同的终端上运行上述命令,那么当你在运行生产者时,消费者就能消费到生产者发送的消息。


                    是的,整个过程没有用到zookeeper。






                    文章转载自orchome,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论