一: 介绍
1.1 首先kafka是一个分布式的流平台。
1.1.1 像消息队列或者企业消息队列一样发布和订阅 record。
1.1.2 能够存储stream并且具有容错能力
1.1.3 在流产生时能对流进行加工 (process) .
kafka 的两大应用场景
1 两个系统或者应用程序间交换数据( 介绍
1.1 首先kafka是一个分布式的流平台。
1.1.1 像消息队列或者企业消息队列一样发布和订阅 record。
1.1.2 能够存储stream并且具有容错能力
1.1.3 在流产生时能对流进行加工 (process) .
kafka 的两大应用场景
1 两个系统或者应用程序间实时流数据通道
2 处理流数据
一些基础概念
1: kafka 是一个集群, 可以跨数据中心。
2: record 以topic来分类
3:每条record 包含key,value, timestamp
kafka的四大核心api
client 和 server 之间的通信是无比高效的。
之前我一直以为kafka的client只有java版,但是从官网的介绍来看,现在client也支持其他语言。
其他基础的概念:
topic , partition , cluster , group
二:快速启动
2.1 启动zookeeper , bin/zookeeper-server-start.sh config/zookeeper.properties
最新版本zookeeper的启动会出现这样的问题
原因是因为 dataDir 已经被使用过了,改为一个新目录即可。
2.2
启动 kafka bin/kafka-server-start.sh config/server.properties
2.3 创建一个topic
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
该topic 只有一个partition,只有一份。
列出所有的topic
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
2.4 发布
bin
/kafka-console-producer
.sh --broker-list localhost:9092 --topic
test
2.5 消费topic里面的message 。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
事实证明:把kafka当作消息队列使用时其message是被持久化了的,可以被多次消费的。
以上 zookeeper 和 kafka都是单节点的,以下介绍kakfa集群的搭建,即集群中的某个节点挂掉之后集群仍然能正常运行。
3: 在springboot中集成kafka的client 。
来源:oschina
链接:https://my.oschina.net/qidis/blog/3165170