作者:宝哥-NO1

blog.csdn.net/code52/article/details/50475511

1、kafka是什么?

Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。

2、产生背景

Kafka是一个消息系统,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。

活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。

运营数据指的3是服务器的性能数据(CPU、IO使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。

3、基本架构图

4、基本概念解释

1)Broker

Kafka集群包含一个或多个服务器,这种服务器被称为broker。broker端不维护数据的消费状态,提升了性能。直接使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,减少耗性能的创建对象和垃圾回收。

2)Producer

负责发布消息到Kafka broke

3)Consumer

消息消费者,向Kafka broker读取消息的客户端,consumer从broker拉取(pull)数据并进行处理。

4)Topic

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)

5)Partition

Parition是物理上的概念,每个Topic包含一个或多个Partition.

6)Consumer Group

每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)

7)Topic & Partition

Topic在逻辑上可以被认为是一个queue,每条消费都必须指定它的Topic,可以简单理解为必须指明把这条消息放进哪个queue里。为了使得Kafka的吞吐率可以线性提高,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。

若创建topic1和topic2两个topic,且分别有13个和19个分区,则整个集群上会相应会生成共32个文件夹(本文所用集群共8个节点,此处topic1和topic2 replication-factor均为1)。

5、适用场景

1、Messaging

对于一些常规的消息系统,kafka是个不错的选择;partitons/replication和容错,可以使kafka具有良好的扩展性和性能优势.不过到目前为止,我们应该很清楚认识到,kafka并没有提供JMS中的"事务性""消息传输担保(消息确认机制)""消息分组"等企业级特性;kafka只能使用作为"常规"的消息系统,在一定程度上,尚未确保消息的发送与接收绝对可靠(比如,消息重发,消息发送丢失等)

2、Website activity tracking

kafka可以作为"网站活性跟踪"的最佳工具;可以将网页/用户操作等信息发送到kafka中.并实时监控,或者离线统计分析等

3、Metrics

Kafka通常被用于可操作的监控数据。这包括从分布式应用程序来的聚合统计用来生产集中的运营数据提要。

4、Log Aggregation

kafka的特性决定它非常适合作为"日志收集中心";application可以将操作日志"批量""异步"的发送到kafka集群中,而不是保存在本地或者DB中;kafka可以批量提交消息/压缩消息等,这对producer端而言,几乎感觉不到性能的开支.此时consumer端可以使hadoop等其他系统化的存储和分析系统

END

推荐好文

强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!分享一套基于SpringBoot和Vue的企业级中后台开源项目,代码很规范!
能挣钱的,开源 SpringBoot 商城系统,功能超全,超漂亮!

Kafka是什么、主要应用在什么场景?相关推荐

  1. 4.2.9 Kafka集群与运维, 应用场景, 集群搭建, 集群监控JMX(度量指标, JConsole, 编程获取, Kafka Eagle)

    目录 3.1 集群应用场景 1 消息传递 2 网站活动路由 3 监控指标 4 日志汇总 5 流处理 6 活动采集 7 提交日志 总结 3.2 集群搭建 3.2.1 Zookeeper集群搭建 3.2. ...

  2. kafka依赖zookeeper原因解析及应用场景

    kafka简介: kafka是一个发布订阅消息系统,由topic区分消息种类,每个topic中可以有多个partition,每个kafka集群有一个多个broker服务器组成,producer可以发布 ...

  3. Kafka第一讲:应用场景及架构设计详解

    本节是Kafka专题第一篇,主要介绍Kafka的发展历史.应用场景以及Kafka的基本架构,后续还会对Kafka的生产者.Broker.消费者.集群做详细讲解,敬请期待. 1.kafka的发展历史及应 ...

  4. 事务消息大揭秘!RocketMQ、Kafka、Pulsar全方位对比

    导语 | 事务是一个程序执行单元,里面的所有操作要么全部执行成功,要么全部执行失败.RocketMQ.Kafka和Pulsar都是当今业界应用十分广泛的开源消息队列(MQ)组件,笔者在工作中遇到关于M ...

  5. 搞透Kafka的存储架构,看这篇就够了

    阅读本文大约需要30分钟.这篇文章干货很多,希望你可以耐心读完. 从这篇文章开始,我将对 Kafka 专项知识进行深度剖析, 今天我就来聊聊 kafka 的存储系统架构设计, 说到存储系统,大家可能对 ...

  6. Kafka万亿级消息实战

    作者:vivo互联网服务器团队-Yang Yijun 一.Kafka应用 本文主要总结当Kafka集群流量达到 万亿级记录/天或者十万亿级记录/天  甚至更高后,我们需要具备哪些能力才能保障集群高可用 ...

  7. 2万长文,一文搞懂Kafka

    作者:erainm 来源:https://blog.csdn.net/eraining/article/details/115860664 1.为什么有消息系统 解耦合 异步处理 例如电商平台,秒杀活 ...

  8. 急需降低系统复杂性,我们从 Kafka 迁移到了 Pulsar

    要点总结 分布式消息系统支持流和队列两种语义,这两种语义最适合使用的场景有所不同. Pulsar 的独特之处在于它同时支持流和队列使用场景. Pulsar 采用多层架构,可以轻松扩展 topic 的数 ...

  9. 使用 Kafka 和 Spark Streaming 构建实时数据处理系统

    使用 Kafka 和 Spark Streaming 构建实时数据处理系统  来源:https://www.ibm.com/developerworks,这篇文章转载自微信里文章,正好解决了我项目中的 ...

  10. kafka解决了什么问题?

    请高手指明一下kafka解决了什么问题,什么场景下使用?消息订阅和发布吗,好像redis也支持,功能是否有重叠? 作者:张琪 链接:https://www.zhihu.com/question/533 ...

最新文章

  1. AI+DevOps正当时
  2. 多个Cisco产品报文远程拒绝服务漏洞
  3. 天津财经计算机专业研究生分数线,天津财经大学各专业2015—2020年硕士研究生复试分数线汇总...
  4. 计算机中的数(一):数在计算机中的表示
  5. java jni librtmp_librtmp 编译集成
  6. 用windows api 计算文件的md5值
  7. 波士顿学院计算机科学专业,波士顿学院专业有哪些?
  8. Tomcat性能调优及JVM内存工作原理
  9. 吉林大学计算机学院刘,刘华虓-吉林大学计算机科学与技术学院
  10. app小窗口悬浮工具_悬浮窗口大师
  11. ICH E2B | ICSR 电子传输网关对接解决方案(CDE EDI)
  12. 计算机屏幕显示故障,计算机显示器常见故障的原因和解决方法
  13. 【rmzt:魔兽冰封王座主题】
  14. SSH使用教程( Bitvise Tunnelier+Chrome+Proxy Switchy)
  15. C++ SLT之map的用法总结
  16. Marvin java图像处理
  17. ajax学员信息php,PHP开源AJAX框架
  18. WIN7远程桌面连接方法!远程控制教程!XP远程桌面连接教程!如何设置远程桌面连接?远程桌面连接设置!
  19. oracle 层次查询 connect by
  20. 【SAP Abap】SAP增强开发总结

热门文章

  1. 搜狐“狐友”正式版上线 扩张我的社交圈
  2. 盘点过去10年美国规模最大科技公司IPO:阿里一直是纪录保持者
  3. 苹果2019新款iPhone售价惊曝:咬牙仍坚持高价位?
  4. 拳王虚拟项目公社:知识付费之出售虚拟教程资源赚钱,小白轻松赚钱的方式
  5. 程序员离职后12天,被前领导命令回去讲清代码?小伙直接说收费
  6. python如何判断对象是否为字符串或者其他类型
  7. 【转】贝叶斯网络+马尔科夫毯 简介
  8. 初入c++(三)this指针,友元函数,友元类
  9. java8 hashmap_Java8 中的 HashMap
  10. redis lua 设置过期_详解 Redis 内存管理机制和实现