Kafka认识

来源:互联网 发布:西翥灵仪 昆明知乎 编辑:程序博客网 时间:2024/05/29 08:42

1):Apache kafka介绍及架构详解

假设一个场景:    数据源:        应用系统A 产生的用户访问数据和订单数据                10000 条一秒钟                    push:推送数据                消息系统:队列 产生的数据量>数据量                    pusll:拉取数据

image

消息系统kafka:        分布式系统队列系统        分布/订阅功能        不恰当比喻:                       发布者来发布文章 -> 推送文章                微信公众号:    类似于  -Topic主题/类别                    订阅者1                    订阅则2                    订阅则3                    订阅则4                    ...订阅者 就能接受到这篇文章消息kafka的功能:    -1:分布式消息Message系统(发布/订阅功能)        0.8.x功能    -2:Connector API        将Kafka Topics中的数据保存到RDBMS数据库中        0.9.x    -3:Stream Compute        可以对Kafka中的数据进行流实计算功能        0.10.xSparkStreaming与kafka集成,使用的版本为0.8.2.xkafka系统能够通过分布式提交日志处理数据,kafka中topics用户定于的一个类别Kafka Cluster:    - 消息系统,储存数据        提交日志格式文件    - 分布式:        有多台数据,进行储存数据    - Topic         储存某一类的数据(消息),类比于微信公众号        储存数据类似于HDFS         -i,按照分区partition储存             相当于文件夹下面有很多文件        -ii,分区数据有多个副本             replications(每个数据有3个副本)    - 分布/订阅        消费者(用户)可以订阅Topic(类比于关注某个微信公众号)        只要生产者向Topic发送数据,订阅者就可以自动接受到数据        进行处理

image

一个典型的Kafka集群中包含若干个Producer,(Kafka支持水平扩展,一般Broker数量越多,集群吞吐率越高),若干个Consumer Group,以及一个Zookeeper集群Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行reablance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息

TOPIC & PARTITION

image

一个Topic分为多个Partition来进行数据管理一个Partition中的数据是有序,不可变的使用偏移量(offset)唯一标识一条数据,是一个long类型的数据;Partiton接受到producer发送过来数据后,会产生一个递增的offset偏移量数据,同是将数据保存到本地的磁盘文件中(文件内容追加的方式写入数据)

image

    基本懂得Kafka流程,搭建起来很简单
原创粉丝点击