设为首页 收藏本站
查看: 964|回复: 0

[经验分享] kafka quick start

[复制链接]

尚未签到

发表于 2017-5-23 15:15:25 | 显示全部楼层 |阅读模式
  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

 
 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379799-1-1.html 上篇帖子: kafka安装测试 下篇帖子: Kafka 对比 ActiveMQ
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表