一:概念

Kafka是一个分布式的消息队列,相当于我们生活中的快递柜,快递点,快递员将快递放到快递柜中,收件人去取,把快递(消息)的入柜(入队)和处理进行解耦,使得双方以自己合适的时间和频率处理快递,此外快递柜也起着削峰填谷的作用,双十一,一车快递进入一个快递点,收件一时间无法领取掉自己的快递,可以暂存到快递点,收件人有时间在去取。

Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。

其他知识点可查看

博客kafka有趣的介绍:https://www.cnblogs.com/sujing/p/10960832.html

(自己总结kafka 知识架构见百度脑图:http://naotu.baidu.com/file/1533ce4eb64b046a45696ad745490720   和百度云盘-组件知识库-kafka中的word文档)

二:部署kafka相关命令(单机,集群)

使用kafka自带的zookeeper集群启动

(1)下载好kafka的包,并解压到/opt/kafka/目录下

tar zxvf kafka_2.11-2.2.1.tgz -C /opt/kafka

(2)启动自带的zookeeper(2181端口)

cd /opt/kafka/kafka_2.11-2.2.1/

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

(3)启动kafka(9092端口)

bin/kafka-server-start.sh -daemon  config/server.properties   (-daemon表示守护进程)

lsof -i :9092   (列出9092端口是否在使用)

(4)创建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --partitions 2 --replication-factor 3 --topic first

其中:--partitions 2 //创建2个分区

--replications-factor 3 //副本数,leader在副本中

--topic //主题为first

查看topic列表

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

查看topic详情描述

bin/kafka-topics.sh --zookeeper localhost:2181 --describe topic first

(5)创建生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic first

(6)  创建消费者

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic first --from-beginning   (--from-beginning表示从开始topic起点开始消费)

注:旧版本中--bootstrap-server是 --zookeeper (消费者的offset之前的版本存放在zookeeper中,新版本offset存放在broker集群的topic中)

补充:下载和命令详情可参考kafka官网 (http://kafka.apache.org/quickstart)

删除topic
    bin/kafka-topics.sh --delete --zookeeper localhost:2181  --topic first

停止kafka
    bin/kafka-server-stop.sh stop

启动指定配置文件的消费者
    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic first --from-beginning --consumer.config config/consumer.properties

最新文章

  1. Inode详解
  2. SPSS数据分析—信度分析
  3. linux | 管道符、输出重定向
  4. MYSQL 查询出最大/最小值所在的记录
  5. Linux 进程通信(无名管道)
  6. 学霸网站之NABCD
  7. Service Oriented Architecture
  8. Java基础--说集合框架
  9. C# winform DatagridView 的简单操作
  10. react中,constructor和getInitialState的区别
  11. maven Spring+Spring MVC+Mybatis+mysql轻量级Java web开发环境搭建
  12. HashMap实现原理
  13. 视频流GPU解码在ffempg的实现(二)-GPU解码器
  14. spark2.1源码分析4:spark-network-common模块的设计原理
  15. 面向对象(特殊成员 组合 self)
  16. python - str和repr方法:
  17. assign()函数
  18. SST:Single-Stream Temporal Action Proposals论文笔记
  19. IOS7 隐藏状态栏 (电池栏)
  20. 《Pro Git》第3章 分支

热门文章

  1. switch/catch
  2. ORACLE-JDK非收费版本下载链接
  3. 【转载】恢复误删文件--DOS命令应用实例(一)
  4. 【首发】uExitCode解释
  5. Linux sar命令
  6. AndroidMainfest详解
  7. linux日常常用命令分析
  8. 【转帖】龙芯3A3000处理器深度评测:和Intel、AMD差距巨大
  9. 作为小白该如何抉择python编辑器?
  10. Go语言学习之main包的讲解