`
lizhuang
  • 浏览: 898997 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

apache kafka0.10.20 搭建简单环境并运行javaDemo

阅读更多
官网下载apache kafka 0.10.20版本,本例子基于jdk1.8环境,mac os el captain.

第一步:下载0.10.2.0压缩包,解压缩
官网http://kafka.apache.org/下载
> tar -xzf kafka_2.11-0.10.2.0.tgz
> cd kafka_2.11-0.10.2.0

第二步 启动服务器
启动zookeeper服务器
> bin/zookeeper-server-start.sh config/zookeeper.properties


启动Kafka服务器
> bin/kafka-server-start.sh config/server.properties


第三步 创建主题
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

> bin/kafka-topics.sh --list --zookeeper localhost:2181


第四步 给主题发信息
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
This is a message
This is another message

第五步 创建用户(consumer)接收信息
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
This is a message
This is another message


使用java创建demo主要针对创建主题,发信息,这主要靠kafka生产者(Producer).
//连接配置
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("acks", "all");
        props.put("retries", 0);
        props.put("batch.size", 16384);
        props.put("linger.ms", 1);
        props.put("buffer.memory", 33554432);
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        //生产者接口及相关实现类
        Producer<String, String> producer = new KafkaProducer<>(props);
        for (int i = 0; i < 100; i++) {
            //发送消息
            /**
             * ProducerRecord(String topic, K key, V value) Create a record to
             * be sent to Kafka
             */
            producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i)));
        }

        producer.close();


从服务器主动拉取信息需要Consumer.
Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("group.id", "test");
        props.put("enable.auto.commit", "true");
        props.put("auto.commit.interval.ms", "1000");
        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(Arrays.asList("my-topic"));
        while (true) {
            ConsumerRecords<String, String> records = consumer.poll(100);
            for (ConsumerRecord<String, String> record : records) {
                System.out.printf("topic = %s, partition = %d, offset = %d, key = %s, value = %s%n", 
                        record.topic(),record.partition(),record.offset(), record.key(), record.value());
            }
        }


使用main方法启动consumerTester类再启动producerTester,在console就可以看到接收到的信息了。
--- exec-maven-plugin:1.2.1:exec (default-cli) @ KafkaDemo ---
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details
topic = my-topic, partition = 0, offset = 300, key = 0, value = 0
topic = my-topic, partition = 0, offset = 301, key = 1, value = 1
topic = my-topic, partition = 0, offset = 302, key = 2, value = 2
topic = my-topic, partition = 0, offset = 303, key = 3, value = 3
topic = my-topic, partition = 0, offset = 304, key = 4, value = 4
topic = my-topic, partition = 0, offset = 305, key = 5, value = 5
topic = my-topic, partition = 0, offset = 306, key = 6, value = 6
topic = my-topic, partition = 0, offset = 307, key = 7, value = 7
topic = my-topic, partition = 0, offset = 308, key = 8, value = 8
topic = my-topic, partition = 0, offset = 309, key = 9, value = 9


具体相关的配置可以看附件maven项目。

分享到:
评论

相关推荐

    kafka-java-demo 基于java的kafka生产消费者示例

    总的来说,"kafka-java-demo"是一个很好的起点,可以帮助你深入理解如何在Java环境中使用Kafka进行数据的生产和消费。通过这个示例,你可以学习到Kafka的基本用法,以及如何利用Java API实现数据的实时处理。

    apache-kafka-1.0.0 java Demo

    在这个"apache-kafka-1.0.0 java Demo"中,我们将探讨如何使用Java API与Kafka进行交互,实现基本的消息生产与消费功能。这个Demo虽然没有采用连接池来优化性能,但依然能展示Kafka的核心特性。 首先,我们要了解...

    Apache Kafka实战.pdf

    《Apache Kafka实战》这本书深入浅出地介绍了Apache Kafka这一分布式流处理平台的各个方面,旨在帮助读者掌握Kafka的实际应用和核心概念。Kafka是一个高吞吐量、低延迟的消息发布订阅系统,常用于构建实时数据管道和...

    Spring for Apache Kafka API(Spring for Apache Kafka 开发文档).CHM

    Spring for Apache Kafka API。 Spring for Apache Kafka 开发文档。

    Learning Apache Kafka 2nd Edition

    This book is here to help you get familiar with Apache Kafka and to solve your challenges related to the consumption of millions of messages in publisher-subscriber architectures. It is aimed at ...

    Building Data Streaming Applications with Apache Kafka

    Apache Kafka is a popular distributed streaming platform that acts as a messaging queue or an enterprise messaging system. It lets you publish and subscribe to a stream of records and process them in ...

    apache kafka pdf下载

    从提供的内容来看,这本书由Nishant Garg编写,Packt Publishing出版,详细介绍了如何搭建Apache Kafka集群,并通过实用、动手的例子来开发自定义的消息生产者和消费者。Nishant Garg是一位拥有超过13年工作经验的...

    Streaming Architecture New Designs Using Apache Kafka and MapR Streams

    Apache Kafka是一种分布式流处理平台,由LinkedIn开发并贡献给Apache软件基金会。Kafka的核心功能是作为一个消息队列,允许应用程序之间高效地发布和订阅大量数据流。它的设计目标是提供高吞吐量、低延迟的消息传递...

    Apache Kafka Cookbook(PACKT,2015)

    《Apache Kafka Cookbook》是由PACKT在2015年出版的一本...通过阅读《Apache Kafka Cookbook》,无论是初学者还是经验丰富的开发者,都能深入理解Kafka的工作原理,掌握其实战技能,并能有效应对各种应用场景下的挑战。

    Building Data Streaming Applications with Apache Kafka azw3

    Building Data Streaming Applications with Apache Kafka 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Apache Kafka

    Apache Kafka是一种分布式流处理平台,由LinkedIn开发并贡献给了Apache软件基金会。Kafka是一个高度可扩展、高吞吐量的消息队列系统,被设计用来处理实时数据流。它结合了消息队列和日志聚合的功能,使得大规模数据...

    kafka-java-demo 基于java的kafka生产消费者例子

    "Kafka-java-demo"项目是一个简单的示例,演示了如何使用Java API创建Kafka生产者和消费者。项目中通常会包含以下关键部分: - **Producer示例**:展示如何创建一个Kafka生产者,设置必要的配置(如服务器地址、...

    Apache Kafka.pdf

    Apache Kafka 是一款开源的流处理平台,由 LinkedIn 开发并捐赠给 Apache 软件基金会。它以一种高吞吐量、低延迟的方式处理实时数据流,并支持可扩展性、持久性和容错性。Kafka 的设计灵感来源于传统的消息队列系统...

    Apache Kafka(带书签)

    Apache Kafka是一种开源流处理平台,由LinkedIn公司创建并捐赠给Apache软件基金会。Kafka被设计为一种高吞吐量、分布式的消息系统,它能够处理大量实时数据流,并以容错的方式将这些数据传递到各种系统和应用中。...

    kafka环境搭建

    通过以上步骤,你已经搭建好了 Kafka 开发环境,可以开始编写 Java 或 Scala 代码实现自定义的 producer 和 consumer。Kafka API 提供了丰富的接口供开发者使用,如 `ProducerRecord` 用于创建消息,`KafkaConsumer`...

    apache kafka

    Kafka是一个对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。 1.Kafka集群包含一个或多个服务器,这种服务器被称为broker 2.Partition是物理上的概念,每个Topic...

    Apache Kafka实战epu.rar

    《Apache Kafka实战》一书是针对分布式流处理平台Apache Kafka的专业指南,旨在帮助读者深入理解和应用Kafka在实际项目中的各种场景。Kafka是一个高吞吐量、低延迟的消息发布订阅系统,最初由LinkedIn开发,后来成为...

Global site tag (gtag.js) - Google Analytics