• 分布式消息队列 Kafka


    分布式消息队列 Kafka

    Kafka是一个高吞吐量的、分布式的消息系统,由Linkedin开发,开发语言为scala

    具有高吞吐、可扩展、分布式等特点

    适用场景


    活动数据统计

    活动数据包括页面访问量(Page View)、被查看内容方面的信息、搜索情况等内容

    先以日志的形式存储,然后周期性地对这些文件进行统计分析

    运营数据统计

    收集服务器的性能数据(CPU、内存、IO使用率 ……),之后进行统计


    Linkedin就是基于这类需求开发出了Kafka,所以kafka最适合的场景为

    一个日志集群,各种服务器将它们自身的日志发送到集群中进行统一汇总和存储,然后其它机器从集群中拉取消息进行分析处理,数据挖掘

    整体架构


    kafka体系包括以下部分:

    (1)生产者 Producer

    (2)broker集群

    (3)话题 Topic(可以理解为queue)

    (4)消费者 Consumer

    (5)Zookeeper集群


    可以在Kafka中创建多个Topic,Producer向Topic中发送消息,Consumer从Topic中获取消息




    为了高效的读写消息,topic都被切分为多个分区partition,放入不同的broker中

    topic的partition类似于数据库的分表,可以根据消息的key进行分区

    例如key为userid,可以根据userid进行分组,把不同userid段的消息放入不同的partition,提高读写性能

    为了保证高可用性,每个partition都有多个备份,分别保存在不同的broker中

    其中有一个partition为leader,负责读写,其余的为slave,当leader失效时,会从slave中再选举出一个leader




    每个partition也不是一个独立的文件,被分为了多个片段segment




    Kafka通过Zookeeper管理集群配置,选举leader




    应用示例


    需求

    监控用户交易行为,当交易金额过大时,标识出异常

    实现

  • 相关阅读:
    shell脚本之数组
    shell脚本之函数
    shell脚本之sed
    shell脚本的for循环与read
    shell脚本之if语句
    shell脚本正则表达式
    shell的编程原理
    《梦断代码》阅读笔记03
    12.19学习总结
    《梦断代码》阅读笔记02
  • 原文地址:https://www.cnblogs.com/jun1019/p/6260580.html
Copyright © 2020-2023  润新知