分布式消息通讯-Kafka介绍-笔记

什么是Kafka后端

  • Kafka是一款分布式消息发布和订阅系统,
    • 具备高性能、高吞吐量的特色
    • 而被普遍应用与大数据传输场景。
  • 它是由LinkedIn公司开发,
    • 使用Scala语言编写,
    • 以后成为Apache基金会的一个顶级项目。
  • kafka提供了相似JMS的特性,
    • 可是在设计和实现上是彻底不一样的,
    • 并且他也不是JMS规范的实现

kafka产生背景:api

  • kafka做为一个消息系统,
    • 早起设计的目的是用做
      • LinkedIn的活动流(Activity Stream)
      • 和运营数据处理管道(Pipeline)。
    • 活动流数据
      • 是全部的网站对用户的使用状况作分析的时候要用到的最常规的部分,
      • 活动数据包括
        • 页面的访问量(PV)、
        • 被查看内容方面的信息
        • 以及搜索内容。
      • 这种数据一般的处理方式是
        • 先把各类活动以日志的形式写入某种文件,
        • 而后周期性的对这些文件进行统计分析。
    • 运营数据指的是
      • 服务器的性能数据(CPU、IO使用率、请求时间、服务日志等)。

Kafka 的应用场景服务器

  • 因为kafka具备更好的
    • 吞吐量、
    • 内置分区、
    • 冗余
    • 及容错性的优势(kafka每秒能够处理几十万消息),
  • 让kafka成为了一个很好的大规模消息处理应用的解决方案。
  • 因此在企业级应用长,
    • 主要会应用于以下几个方面:

Ø 行为跟踪:架构

  • kafka能够用于跟踪用户浏览页面、搜索及其余行为。
  • 经过发布-订阅模式实时记录到对应的topic中,
    • 经过后端大数据平台接入处理分析,
    • 并作更进一步的实时处理和监控

Ø 日志收集:框架

  • Kafka经常使用做日志聚合:
    • 从各个服务器收集日志存储到一个集中的平台进行处理
    • 不少公司的套路是:把日志集中到Kafka ,而后分发到es和 hdfs
      • 作日志实时检索和离线统计数据备份
      • ELKK 框架
    • Kafka也提供 api 来作日志日志收集

 

Kafka 自己的架构分布式

  • Kafka 经过 ZooKeeper 集群配置和服务协同
    • producer 经过push 发送消息到 broker
    • consumer pull 消息
  • 多个 broker 协同工做
    • producer 和 consumer 部署在各个业务逻辑中
    • 三者经过ZooKeeper 管理协调请求和转发
    • 这样就组成了一个高性能的分布式消息订阅系统

相关文章
相关标签/搜索