centos

kafka消息centos如何消费

小樊
34
2025-11-20 00:12:55
栏目: 智能运维

在CentOS上消费Kafka消息,你需要遵循以下步骤:

  1. 安装Java: Kafka是基于Java开发的,因此首先需要在CentOS上安装Java。你可以使用以下命令来安装OpenJDK:

    sudo yum install java-1.8.0-openjdk-devel
    

    安装完成后,可以通过java -version命令来验证Java是否安装成功。

  2. 下载并解压Kafka: 你可以从Kafka官方网站下载最新版本的Kafka。下载完成后,使用以下命令解压:

    tar -xzf kafka_2.13-*.tgz
    cd kafka_2.13-*
    

    请将*替换为你下载的具体版本号。

  3. 启动Zookeeper: Kafka使用Zookeeper来管理集群和消息。在启动Kafka之前,需要先启动Zookeeper。在Kafka目录下,使用以下命令启动Zookeeper:

    bin/zookeeper-server-start.sh config/zookeeper.properties
    

    Zookeeper默认监听2181端口。

  4. 启动Kafka服务器: 在另一个终端窗口中,启动Kafka服务器:

    bin/kafka-server-start.sh config/server.properties
    

    Kafka默认监听9092端口。

  5. 创建Topic(如果尚未创建): 使用以下命令创建一个名为my-topic的Topic:

    bin/kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
    
  6. 消费消息: 使用以下命令来消费my-topic中的消息:

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning
    

    参数--from-beginning表示从Topic的开始处消费消息。如果不加这个参数,消费者将从最新的消息开始消费。

  7. 运行消费者应用程序: 如果你想编写自己的消费者应用程序来消费Kafka消息,你可以使用Kafka提供的客户端库。以下是一个简单的Java消费者示例:

    import org.apache.kafka.clients.consumer.ConsumerRecord;
    import org.apache.kafka.clients.consumer.ConsumerRecords;
    import org.apache.kafka.clients.consumer.KafkaConsumer;
    
    import java.time.Duration;
    import java.util.Collections;
    import java.util.Properties;
    
    public class SimpleConsumer {
        public static void main(String[] args) {
            Properties props = new Properties();
            props.put("bootstrap.servers", "localhost:9092");
            props.put("group.id", "test-group");
            props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
            props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
    
            KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
            consumer.subscribe(Collections.singletonList("my-topic"));
    
            try {
                while (true) {
                    ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
                    records.forEach(record -> {
                        System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
                    });
                }
            } finally {
                consumer.close();
            }
        }
    }
    

    将上述代码保存为SimpleConsumer.java,然后编译并运行它。确保你的CLASSPATH包含了Kafka客户端库。

以上步骤将帮助你在CentOS系统上设置和消费Kafka消息。记得在实际部署时,你需要根据实际情况调整配置文件中的参数,例如bootstrap.serversgroup.id等。

0
看了该问题的人还看了