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.x


SparkStreaming与kafka集成,使用的版本为0.8.2.x

kafka系统能够通过分布式提交日志处理数据,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流程,搭建起来很简单
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!