1,Kafka系列学习笔记-认识kafka

慕课学习笔记https://www.imooc.com/learn/1043

1,Kafka概念

1>what?

    LinkedIn 开源

    分布式数据同步系统Databus

    高性能计算引擎Cubert

    Java异步处理框架ParSeq

    Kafka流处理平台

        LinkedIn开发

        2011年开源,加入apache

三个特性:

    1,发布

    2,订阅

    3,数据流的处理

概念

1,物理概念(硬件)

2,逻辑概念(代码或者策略逻辑)            

Producer:数据的生产者

Consumer:数据的消费者

Consumer Group:对于消费的升级

同一个Consumer Group中仅有一个Consumer读取Topic的一个或多个Partitions,并且是唯一的Consumer

既然在同一个Group中只要一个Consumer为啥还要存在Group?

     1>容错

     2>提高性能

Broker:物理概念,服务器级别的kafka节点
               Broker Group中的每一个Broker保存Topic的一个或者多个Partitions

Topic:逻辑概念,消息类别,对数据进行区分,隔离

Partition:kafka下的最小存储单元
	每一个topic被切分为多个Partitions
	消费者数据少于或者等于Partition的数目
	
Replication:同一个Partition可能会有多个Replica(Partition的备胎)

                基本单位Partition

                所有的读和写都从Leader进,Followers只是作为备份

                Follower必须能够及时复制Leader的数据

                增加容错性和可扩展性

Replication Leader: 一个Partition多个Replica只有一个Replication Leader,并且由Replication Leader去和Producer/Consumer去交互。

ReplicaManager:多有分区,副本消息的请求/读取等等

2,Kafka结构
1>四个核心api

    Producer API

    Consumer API

    Streams API

    Connectors API

2>Kafa消息结构

    Offset:消息当前所处于的偏移是多少

    Length:消息的长度

    CRC32:校验信息的完整性

    Magic:固定的数字,快速判定是不是卡夫卡的消息

    attributes:可选,枚举值

    timestamp:时间戳

    Key Length 长度

    Key

    Value Length 长度

    Value

特点:

分布式

    ·多分区

    ·多副本

    ·多订阅者

    ·基于Zookeeper调度

高性能

    ·高吞吐量

    ·低延迟

    ·高并发

    ·时间复杂度O(1)

持久性和扩展性

    数据可持久化

    容错性

    支持在线水平扩展:Broker可以有一个或者多个Partition

消息自动平衡

3,Kafka场景及使用

·消息队列:

·行为跟踪:跟踪用户浏览行为,实时记录到Tokit

·元信息监控:实时监控类似,实时收集用户行为操作信息

·日志收集:将数据抽象成日志进行处理

·流处理:对原始数据进行实时计算,实时处理等等到展示转换

·事件源:回溯这些事件的源的处理

·持久性日志(commit log):可以在节点间备份日志

Kafka的简单案例

启动

简单生产者

简单消费者

1,启动安装包中的Zookeeper

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

2,启动kafka

➜ bin/kafka-server-start.sh config/server.properties

3,创建topic

➜ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

4,查看topic

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

5,查看kafka是否启动

jps

6,打开消费者窗口

➜ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

7,生产者窗口下作业并观察消费者窗口是否有响应

➜ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
Hello world!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值