Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。今天就让我们一起来看看关于Kafka 的精华问答吧。

1

Q:Kafka的使用场景

A: 1、Messaging

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

2、Websit activity tracking

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

  3、Log Aggregation

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

2

Q:Kafka有哪些特性?

A:- 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。

- 可扩展性:kafka集群支持热扩展

- 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失

- 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)

- 高并发:支持数千个客户端同时读写

3

Q:Kafka存在哪些组件?

A:一个MQ需要哪些部分?生产、消费、消息类别、存储等等。

对于kafka而言,kafka服务就像是一个大的水池。不断的生产、存储、消费着各种类别的消息。那么kafka由何组成呢?

> Kafka服务:

> Topic:主题,Kafka处理的消息的不同分类。

> Broker:消息代理,Kafka集群中的一个kafka服务节点称为一个broker,主要存储消息数据。存在硬盘中。每个topic都是有分区的。

> Partition:Topic物理上的分组,一个topic在broker中被分为1个或者多个partition,分区在创建topic的时候指定。

> Message:消息,是通信的基本单位,每个消息都属于一个partition

> Kafka服务相关

> Producer:消息和数据的生产者,向Kafka的一个topic发布消息。

> Consumer:消息和数据的消费者,定于topic并处理其发布的消息。

> Zookeeper:协调kafka的正常运行。

4

Q:Kafka的主要功能有哪些?

 

A:根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:

  1:It lets you publish and subscribe to streams of records.发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因

  2:It lets you store streams of records in a fault-tolerant way.以容错的方式记录消息流,kafka以文件的方式来存储消息流

  3:It lets you process streams of records as they occur.可以再消息发布的时候进行处理

5

Q:Kafka存储策略


A:1)kafka以topic来进行消息管理,每个topic包含多个partition,每个partition对应一个逻辑log,有多个segment组成。

2)每个segment中存储多条消息(见下图),消息id由其逻辑位置决定,即从消息id可直接定位到消息的存储位置,避免id到位置的额外映射。

3)每个part在内存中对应一个index,记录每个segment中的第一条消息偏移。

4)发布者发到某个topic的消息会被均匀的分布到多个partition上(或根据用户指定的路由规则进行分布),broker收到发布消息往对应partition的最后一个segment上添加该消息,当某个segment上的消息条数达到配置值或消息发布时间超过阈值时,segment上的消息会被flush到磁盘,只有flush到磁盘上的消息订阅者才能订阅到,segment达到一定的大小后将不会再往该segment写数据,broker会创建新的segment。

小伙伴们冲鸭,后台留言区等着你!

关于kafka,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~

福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

2、公众号后台回复:白皮书,获取IDC最新数据白皮书整理资料!

推荐阅读:

  • 在线公开课 | 从理论走向实践,多角度详解Cloud Native

  • 苹果春季发布会:库克绝不玩别人玩剩下的!

  • 中国区块链职业发展现状: 30岁前不做开发; 平均薪资仅38.4万; 跳槽薪资涨三成 (附完整报告下载资源)

  • 库克谈“唱衰苹果”:一派胡言!

  • 上海交大CV博导微信群辱骂学生,已停止教学

  • 李沐团队新作Gluon,复现CV经典模型到BERT,简单好用 | 强烈推荐

  • 日本乐天要求员工学编程,AI 进中小学课堂,全民编程时代来了!

喜欢就点击“在看”吧

Kafka精华问答 | Kafka有哪些使用场景?相关推荐

  1. Kafka精华问答 | Kafka的主要应用场景有哪些?​

    Kafka是最初由Linkedin公司开发,具有高性能.持久化.多副本备份.横向扩展能力.今天,我们就看看看关于Kafka的精华问答吧. 1: Q:什么是Kafka? A:Kafka是由Apache软 ...

  2. Kafka精华问答 | kafka的使用场景是什么?

    戳蓝字"CSDN云计算"关注我们哦! Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.作为一种高吞吐量的分布式发布订阅消息系统,有着诸多特 ...

  3. Kafka精华问答 | kafka节点之间如何备份?

    戳蓝字"CSDN云计算"关注我们哦! Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.作为一种高吞吐量的分布式发布订阅消息系统,有着诸多特 ...

  4. kafka使用_Kafka精华问答 | kafka的使用场景是什么?

    戳蓝字"CSDN云计算"关注我们哦! Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.作为一种高吞吐量的分布式发布订阅消息系统,有着诸多特 ...

  5. Kafka精华问答 | 为什么要用Message Queue?

    Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS ...

  6. Storm精华问答 | Kafka在Storm中的角色是什么?

    戳蓝字"CSDN云计算"关注我们哦! Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop.随着越来越多的场景对Hadoop的MapReduce高 ...

  7. 批量提交 kafka_Kafka精华问答|kafka的使用场景是什么?

    戳蓝字"CSDN云计算"关注我们哦! Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.作为一种高吞吐量的分布式发布订阅消息系统,有着诸多特 ...

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

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

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

最新文章

  1. FineReport搭建物流报表平台的解决方案
  2. MySQL内部执行流程
  3. Sizzle 官方API翻译
  4. 手机当电脑音响_hifi迷你组合音响怎么样 hifi迷你组合音响优势简介【详解】
  5. Linux 系统应用编程——网络编程(利用TCP/IP 模型分析数据传输过程)
  6. 学成在线--0.项目概述
  7. unity UI事件
  8. bigdecimal保留4位小数_四年级数学小数的加减乘法知识点汇总,带练习!
  9. Linux unzip命令:解压zip文件
  10. OpenCV图像、矩阵、数组介绍
  11. 吴恩达 深度学习 编程作业(2-3)- TensorFlow Tutorial
  12. kalman filter java_Kalman filters(一)
  13. springsecurity 登录失败_145-Spring Security
  14. Atitit.eclise的ide特性-------abt 编译
  15. matlab绘正态/卡方/t/F分布概率密度图
  16. 群体创新技术/群体决策的几种类型
  17. 原生微信小程序实现号码隐藏,用****代替
  18. java 2分钟_Java怎么判断他是否在2分钟内执行了任务?
  19. 模糊神经网络(三)模糊逻辑和神经网络的对比
  20. 人性的弱点 --卡耐基

热门文章

  1. oracle清空无效数据,如何清除编译后留下的无效对象
  2. 前谷歌资深架构师:真正搞懂spring底层到底有什么好处?
  3. 吸烟致癌的迷思是如何破除的?
  4. 美科技股崩了,Facebook、亚马逊、谷歌一夜蒸发万亿元
  5. 超过12000个零件,钢琴就是一部复杂的机器
  6. python中lowerright_python字符串,从入门到高阶看这篇就够了
  7. 递归算法的时间复杂度分析
  8. c++模板显示实例化,显示具体化,隐式实例化
  9. vim配置vimrc详解
  10. Docker 服务器安装(一)