Kafka(1)

基本概念

什么是Kafaka
LinkedIn开源

  • 分布式数据同步系统Databus
  • 高性能计算引擎Cubert
  • Java异步处理框架ParSeq
  • Kafka流处理平台

背景
LinkedIn开发,2011年初开源,加入Apache基金会,2012年从Apache Incubator毕业,Apache顶级开源项目。

官方解释
streaming platform has three key capabilities:

  • Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.
  • Store streams of records in a fault-tolerant durable way.
  • Process streams of records as they occur.

流处理平台有三个关键功能:

  • 发布和订阅记录流,类似于消息队列或企业消息传递系统。
  • 以容错持久的方式存储记录流。
  • 在记录发生时处理记录流。

Kafka is generally used for two broad classes of applications:

  • Building real-time streaming data pipelines that reliably get data between systems or applications.
  • Building real-time streaming application that transform or react to the streams of data.

Kafka通常用于两大类应用程序:

  • 构建能够可靠地在系统或应用程序之间获取数据的实时流数据管道。
  • 构建转换或响应数据流的实时流应用程序。

Kafka基本概念
物理概念,逻辑概念。
Producer:消息和数据的生产者,向Kafka的一个topic发布消息的进程/代码/服务。
Consumer:消息和数据的消费者,订阅数据(Topic)并且处理其发布的消息的进程/代码/服务。
Consumer group:逻辑概念,对于同一个topic,会广播给不同的group,一个group中,只有一个consumer可以消费该消息。
Broker:物理概念,Kafka集群中的每个Kafka节点。
Topic:逻辑概念,Kafka消息的类别,对数据进行区分、隔离。
Partition:物理概念,Kaka下数据存储的基本单元。一个Topic数据,会被分散存储到多个Partition,每一个Partition是有序的。
Replication:同一个Partition可能会有多个Replica,多个Replica之间数据是一样的。
Replication Leader:一个Partition的多个Replica上,需要一个Leader负责该Partition上与Producer和Consumer交互。
ReplicaManager:负责管理当前broker所有分区和副本的信息,处理KafkaController发起的一些请求,副本状态的切换、添加/读取消息等。
Kafka基本概念延申
Partition
每一个topic被切分为多个partitions
消费者数目少于或等于partition的数目
broker group中的每一个broker保存topic的一个或多个partitions
consumer group中的仅有一个consumer读取topic的一个或多个partitions,并且是唯一的consumer
replication
当集群中有broker挂掉的情况,系统可以主动地使replicas提供服务
系统默认设置每一个topic的replication系数为1,可以在创建topic时单独设置
replication特点
replication的基本单位是topic的partition
所有的读写都从leader进,followers只是做为备份
follower必须能够及时复制leader的数据
增加容错性与可扩展性

Kafka特点
1分布式
多分区
多副本
多订阅者
基于zookeeper调度
2高性能
高吞吐量
低延迟
高并发
时间复杂度为O(1)
3持久性和扩展性
数据可持久化
容错性
支持在线水平扩展
消息自动平衡

Kafka应用场景
消息队列
行为跟踪
元信息监控
日志收集
流处理
事件源
持久性日志(commit log)

Kafka简单案例
下载安装
zookeeper下载:
http://zookeeper.apache.org/releases.html#download
kafka下载:
http://kafka.apache.org/downloads
安装:解压,配置环境变量

zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
./bin/kafka-server-start /usr/xxx/xxx/server.properties
./bin/kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic “imooc-kafka-topic”
./bin/kafka-topics --list --zookeeper localhost:2181

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

./bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic imooc-kafka-topic --from-beginning

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值