Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写
kafka是基于zookeeper的,在启动kafka之前要先启动zookeeper,kafka默认自带zookeeper,不需要自带的可以自行安装。
1.下载安装
官网下载,解压到 /usr/local下
shifulong kafka_2.9.1-0.8.2.2$ pwd /usr/local/kafka_2.9.1-0.8.2.2 shifulong kafka_2.9.1-0.8.2.2$ ll total 32 drwxr-xr-x@ 8 shifulong staff 272 10 12 10:37 ./ drwxrwxr-x 23 root admin 782 10 12 10:17 ../ -rw-r--r--@ 1 shifulong staff 11358 9 3 09:34 LICENSE -rw-r--r--@ 1 shifulong staff 162 9 3 09:34 NOTICE drwxr-xr-x@ 21 shifulong staff 714 9 3 09:44 bin/ drwxr-xr-x@ 12 shifulong staff 408 10 15 14:16 config/ drwxr-xr-x@ 18 shifulong staff 612 9 3 09:44 libs/ drwxr-xr-x 125 shifulong staff 4250 10 15 14:03 logs/
2.启动zookeeper
shifulong kafka_2.9.1-0.8.2.2$ bin/zookeeper-server-start.sh config/zookeeper.properties
3.启动kafka
由于到单机模拟4台kafka,需要启动4个server
config/server.properties 拷贝四分,做如下修改
broker.id全局唯一,从0开始
config/server.properties: //默认配置 broker.id=0 port=9093 log.dir=/tmp/kafka-logs-1 config/server-1.properties: broker.id=1 port=9093 log.dir=/tmp/kafka-logs-1 config/server-2.properties: broker.id=2 port=9094 log.dir=/tmp/kafka-logs-2 config/server-3.properties: broker.id=3 port=9095 log.dir=/tmp/kafka-logs-3
启动4个broker
shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server.properties shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server-1.properties shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server-2.properties shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server-3.properties
4.创建topic
- 1.假设实验环境中Kafka集群只有一个broker,log.dirs=/tmp/kafka-logs
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 4 --topic test_single_broker
执行完创建命令后,在/tmp/kafka-logs 目录下 会自动创建四个partition,以topic名称+编号命名(从0开始)
drwxr-xr-x 4 shifulong wheel 136 10 15 14:36 test_single_broker-0/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:36 test_single_broker-1/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:36 test_single_broker-2/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:36 test_single_broker-3/
- 2.假设实验环境中Kafka集群只有4个broker,
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic test_multi_broker
/tmp/kafka-logs 目录下
drwxr-xr-x 4 shifulong wheel 136 10 15 14:43 test_multi_broker-2/
/tmp/kafka-logs-1 目录下
drwxr-xr-x 4 shifulong wheel 136 10 15 14:43 test_multi_broker-3/
/tmp/kafka-logs-2 目录下
drwxr-xr-x 4 shifulong wheel 136 10 15 14:43 test_multi_broker-0/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:43 test_multi_broker-4/
/tmp/kafka-logs-3 目录下
drwxr-xr-x 4 shifulong wheel 136 10 15 14:43 test_multi_broker-1/
上面的测试证明了如下问题
在集群环境中通一个topic的多个partition的均匀的在每个broker上创建,
- 3.多broker 并且 replication-factor > 1 的情况
与上面的例子不同的是,--replication-factor 2的参数是2(创建1个副本)
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 5 --topic test_multi_replication_topic
/tmp/kafka-logs
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-2/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-3/
/tmp/kafka-logs-1
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-0/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-3/
/tmp/kafka-logs-2
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-0/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-1/
/tmp/kafka-logs-3
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-1/
drwxr-xr-x 4 shifulong wheel 136 10 15 14:54 test_multi_repli_topic-2/
可以看到每个partition创建了2此在不同的broker上
并且创建是有一定规律的
有一篇较为详细的博客介绍分配的规则:
Kafka集群partition replication自动分配分析 http://blog.csdn.net/lizhitao/article/details/41778193
5.发消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_multi_replication_topic
6.消费消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test_multi_replication_topic --from-beginning
相关推荐
Apache Kafka Quick Start Guide-Packt Publishing(2018),epub格式,欢迎下载
- **官方文档**:[Kafka Quick Start](http://kafka.apache.org/documentation.html#quickstart) - **启动 Zookeeper 服务器**:`bin/zookeeper-server-start.sh config/zookeeper.properties` - **启动 Kafka ...
You will then learn about the Hadoop ecosystem, and tools such as Kafka, Sqoop, Flume, Pig, Hive, and HBase. Finally, you will look at advanced topics, including real time streaming using Apache Storm...
kafka 的分布式搭建,quick start:《kafka 分布式环境搭建》 关亍 kafka 的实现细节,返主要就是讲 design 的部分:《细节上》、《细节下》 关亍 kafka 开収环境,scala 环境的搭建:《开収环境搭建》 数据生产者...
快速入门(Quick Start)部分则会提供简单的步骤来启动和运行Kafka,让使用者快速了解和使用Kafka。 软件生态(Ecosystem)部分讲述了Kafka与其它组件如ZooKeeper、Kafka Connect和Kafka Streams等的关系与功能。...
#### 1.3 Quick Start 快速入门通常包括以下几个步骤: 1. **安装 Kafka**:下载并安装 Kafka 软件包。 2. **启动集群**:启动 ZooKeeper 和 Kafka 服务。 3. **创建主题**:使用 `kafka-topics.sh` 命令创建一个或...
3. **快速入门 (Quick Start)**:快速启动Kafka涉及下载和配置Kafka,启动Zookeeper(Kafka的依赖),然后启动Kafka服务器。接着,创建主题,编写生产者和消费者程序来发送和接收消息。在Java、Python或Scala等语言...
Quick Start gostash -f etc/config.json config.json示例如下: { "Input": { "Kafka": { "Name": "gostash", "Brokers": [ "172.16.186.16:19092", "172.16.186.17:19092" ], "Topic": "k8slog...
可用脚本在项目目录中,可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。npm test 在交互式监视模式下启动测试运行...
Flink从入门到项目实践 Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。...Quick Start 在数据处理领域,WordCount就是HelloWorld。Fl
10.2.6. Quick-start Spring CLI Example 10.3. Upgrading from an Earlier Version of Spring Boot 11. Developing Your First Spring Boot Application 11.1. Creating the POM 11.2. Adding Classpath ...