kafka最详细教程
2018-11-28 18:15:56 0 举报
AI智能生成
kafka轻松入门,开拓进阶,笔记教程中包括zookeeper和kafka环境搭建、zookeeper和kafka集群搭建、kafka必备图解概念、springcloud整合kafka
作者其他创作
大纲/内容
kafka
概念
分布式消息系统,基于消息发布-订阅模式实现的消息系统
消息队列功能
变换或处理数据流,数据处理功能
结构图
消息传输流程
1
kafka服务器消息存储策略
2
3
与生产者的交互
4
与消费者的交互
5
Broker
kafka集群包含一个或多个服务器(图5中server),这些服务器成为broker
kafka集群中的服务器
topic
指定消息的topic,即可生产和消费数据而不必关心数据存在于何处
一系列队列的总称,称为一个主题,概念上,实际由多个partition组成
Partition
物理上的分区,每个topic会分成一个或多个partition(图5中的P),每个Partition对应一个文件夹
(存储对应分区的消息内容和索引文件)
(存储对应分区的消息内容和索引文件)
kafka为了实现横向扩展和高并发的独有设计
partition可以在不同的服务器上分布
Producer
消息生产者,负责生产消息并发送到kafka broker
Consumer
(图5中C)消息消费者,向kafka broker读取消息并处理的客户端
Consumer Group
每个Consumer属于一个特定的组(可以为每个Consumer指定属于一个组,若不指定则属于默认组)
,组可以用来实现一条消息被组内多个成员消费等功能
,组可以用来实现一条消息被组内多个成员消费等功能
设计目标
消息持久化
保证常数时间复杂度的访问能力的持久化
高吞吐
分布式
跨平台
实时性
支持实时数据的处理和离线数据处理
伸缩性
支持水平扩展
配置
zookeeper.properties
clientPort=2181 为zookeeper绑定端口
server.properties
zookeeper.connect=localhost:2181 设置zookeeper的地址和端口
zookeeper.connect=127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002
快速入门
开启zookeeper
单独安装开启(推荐)
zkserver
kafka内置开启
执行命令: zookeeper-server-start config/zookeeper.properties
开启kafka
执行 : kafka-server-start config/server.properties
创建topic
手工创建
kafka-topics --create --zookeeper localhost:2181 -- replication-factor 1 --partitions
1 --topic test
1 --topic test
查看topic
kafka-topics --list --zookeeper localhost:2181
自动创建topic
创建消息生产者
kafka-console-producer --broker-list localhost:9092 --topic test1
创建消息消费者
kafka-console-consumer --bootstrap-server localhost:9092 --topic test1 --from-beginni
ng
ng
开启kafka-manager
kafka-manager
管理 kafka-mamager
进阶
kafka集群搭建
使用kafka作为springcloud bus的消息总线,以及如何自定义总线事件
整合springcloud
kafka的配置
spring.cloud.stream.kafka.binder.brokers
Kafka的服务端列表,默认为localhost
Kafka的服务端列表,默认为localhost
spring.cloud.stream.kafka.binder.defaultBrokerPort
Kafka服务端的默认端口,当brokers属性中没有配置端口信息时,
就会使用这个默认端口,默认为9092
Kafka服务端的默认端口,当brokers属性中没有配置端口信息时,
就会使用这个默认端口,默认为9092
spring.cloud.stream.kafka.binder.zkNodes
Kafka服务端连接的ZooKeeper节点列表,默认为localhost
Kafka服务端连接的ZooKeeper节点列表,默认为localhost
spring.cloud.stream.kafka.binder.defaultZkPort
ZooKeeper节点的默认端口,当zkNodes属性中没有配置端口信息时,
就会使用这个默认端口,默认为2181
ZooKeeper节点的默认端口,当zkNodes属性中没有配置端口信息时,
就会使用这个默认端口,默认为2181
环境搭建
window下kafka-manager的搭建与使用
Kafka入门教程和JAVA客户端使用
相关知识
Zookeeper集群搭建
0 条评论
下一页