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格式,欢迎下载
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 kafka kafka kafka kafka
kafka
kafka连接工具
kafka kafka kafka
版本kafka_2.13-2.5.0. 官网下载太慢了,备份一下. 直接可以用 启动方法 方法一:加守护进程启动 bin/kafka-server-start.sh -daemon config/server....nohup kafka-server-start.sh ../config/server.properties
kafka 的分布式搭建,quick start:《kafka 分布式环境搭建》 关亍 kafka 的实现细节,返主要就是讲 design 的部分:《细节上》、《细节下》 关亍 kafka 开収环境,scala 环境的搭建:《开収环境搭建》 数据生产者...
一共包含两个程序,分别是Kafka生产者工具、Kafka消费者工具。 1、使用bootstrap、userName、password连接kafka。 2、可使用text、json格式发送topic消息。 3、异步producer、customer,收发消息畅通无阻。 Kafka...
批处理脚本启动kafka服务,
kafka 插件
Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者...
kafka的docker镜像包含了kafka,zookeeper 和kafkamanager,可以通过docker 来load 安装
Kafka自LinkedIn开源以来就以高性能、高吞吐量、分布式的特性著称,本书以0.10版本的源码为基础,深入分析了Kafka的设计与实现,包括生产者和消费者的消息处理流程,新旧消费者不同的设计方式,存储层的实现,协调者...
说明:kafka-manager 自己下载编译速度巨慢,此资源是编译好的 kafka-manager,版本是:kafka-manager-1.3.3.7(适用于较新的版本,kafka版本是kafka_2.11-2.0.1)。 安装配置说明: 1. 里头有个自己写的启动脚本,...
kafka_2.11-2.0.0.tgz, kafka_2.11-2.0.1.tgz, kafka_2.11-2.1.0.tgz, kafka_2.11-2.1.1.tgz, kafka_2.11-2.2.0.tgz, kafka_2.11-2.2.1.tgz, kafka_2.11-2.2.2.tgz, kafka_2.11-2.3.0.tgz, kafka_2.11-2.3.1.tgz, ...
基于Kafka的管理系统源码 基于Kafka的管理系统源码 基于Kafka的管理系统源码 基于Kafka的管理系统源码 基于Kafka的管理系统源码 基于Kafka的管理系统源码 基于Kafka的管理系统源码 基于Kafka的管理系统源码 ...
大数据,kafka
【BAT必备】kafka面试题【BAT必备】kafka面试题【BAT必备】kafka面试题【BAT必备】kafka面试题【BAT必备】kafka面试题【BAT必备】kafka面试题【BAT必备】kafka面试题【BAT必备】kafka面试题【BAT必备】kafka面试题...
kafka