kafka应用场景包括_什么是场景理论

kafka应用场景包括_什么是场景理论1.Kafka概述Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。简单地说,Kafka就相比是一个邮箱,生产者是发送邮件的人,消费者是接收邮件的人,Kafka就是用来存东西的,只不过它提供了一些处理邮件的机制。               2.Kafka相关名词分析Broker:Kafka节点,一个Kafka…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.Kafka概述

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。简单地说,Kafka就相比是一个邮箱,生产者是发送邮件的人,消费者是接收邮件的人,Kafka就是用来存东西的,只不过它提供了一些处理邮件的机制。

       kafka应用场景包括_什么是场景理论                     kafka应用场景包括_什么是场景理论

2.Kafka相关名词分析

  • Broker:Kafka节点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群
  • Topic:一类消息,消息存放的目录即主题,例如page view日志、click日志等都可以以topic的形式存在,Kafka集群能够同时负责多个topic的分发
  • massage: Kafka中最基本的传递对象。
  • Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列
  • Segment:partition物理上由多个segment组成,每个Segment存着message信息
  • Producer : 生产者,生产message发送到topic
  • Consumer : 消费者,订阅topic并消费message, consumer作为一个线程来消费
  • Consumer Group:消费者组,一个Consumer Group包含多个consumer
  • Offset:偏移量,理解为消息partition中的索引即可

下面做进一步说明:

    broker即kafka程序,kafka程序运行于zookeeper之上,zookeeper是一个分布式的,分布式应用程序的协调服务,其提供的功能包括:配置维护、域名服务、分布式同步、组服务等。在此处,zookeeper协调kafka节点的配置、同步操作等。

    topic即主题,kafka中发布消息、订阅消息的对象是topic。我们可以为每类数据创建一个topic。一个topic中的消息数据按照多个partition组织,分区是kafka消息队列组织的最小单位(并不是物理上的最小单位),一个分区可以看作是一个FIFO( First Input First Output的缩写,先进先出队列)的队列。如下图:

kafka应用场景包括_什么是场景理论                      kafka应用场景包括_什么是场景理论

例如,在上图中,一个topic被分成了3个分区(即partition0~2),用户发布message时,可以指定message所处topic的partition,如果没有指定,则随机分布到该topic的partition。发布的消息(其实是逻辑日志)将在partition尾部插入。

  segment是partition的物理存储单元,kafka收到message后,会向对应partition的最后一个segment上添加该消息,当某个segment上的消息条数达到配置值或消息发布时间超过阈值时,segment上的消息会被保存到磁盘,只有被保存到磁盘上的消息consumer才能消费,segment达到一定的大小后将不会再往该segment写数据,kafka会创建新的segment。其实,每个partition相当于分配到多个大小相等segment数据文件中。但每个segment消息数量不一定相等,这种特性方便无用的segment快速被删除,segment文件生命周期由服务端配置参数决定。如下图:

                              kafka应用场景包括_什么是场景理论

  consumer和consumer group,一个consumer group包含多个consumer,用户可以指定consumer的group。各个consumer可以组成一个group,partition中的每个message只能被一个group中的一个consumer消费,如果一个message想要被多个consumer消费的话,那么这些consumer必须在不同的group。kafka不支持一个partition中的message同时由两个或两个以上的consumer thread来处理,即便是来自不同的consumer group的也不行。kafka为了保证吞吐量,只允许一个consumer去访问一个partition。如果觉得效率不高,可以加partition的数量来横向扩展,再加新的consumer去消费,充分发挥了横向的扩展性,吞吐量极高。这也就形成了分布式消费的概念。如下图:

                                                    kafka应用场景包括_什么是场景理论

上图中有两个服务器的kafka群集,它们有四个分区(P0-P3),其中有两个group。group A有两个消费者,group B有四个消费者。P0如果被C1消费后,则C2不能再消费,但是group B的C3或者其它的一个可以消费P0。

3.Kafka的优势

 

  • 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒
  • 可扩展性:kafka集群支持热扩展
  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
  • 容错性:允许集群中节点故障(若副本数量为n,则允许n-1个节点故障)
  • 高并发:支持数千个客户端同时读写

4.Kafka应用场景

  • 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer
  • 消息系统:解耦生产者和消费者、缓存消息等
  • 用户活动跟踪:kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后消费者通过订阅这些topic来做实时的监控分析,亦可保存到数据库
  • 运营指标:kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告
  • 流式处理:比如spark streaming和storm;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182050.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 字符串全排列cpp_输出字符串的全排列

    字符串全排列cpp_输出字符串的全排列String对象描述字符串是JavaScript的一种基本的数据类型String类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。需要注意的是:JavaScript的字符串是不可变的(immutable),String类定义的方法都不能改变字符串的内容。像String.toUpperCase()这样的方法,返回的是全新的字符串,而不是修改原始字符串。String对象属性属性描述constructor对创建该对象的函数的引用

    2022年10月30日
  • 7. QFile读写文件的基本操作「建议收藏」

    7. QFile读写文件的基本操作「建议收藏」QFile的基本读写操作

  • 2022年想做后端开发学Java还是C++更有前景?

    2022年想做后端开发学Java还是C++更有前景?不知道大家在大学的时候有没有这样的疑惑,做后端开发学Java还是C++呢?可能大家和我一样,都有过这种二选一的疑惑,如果我毕业后想从事Java后端开发,那么应该按照怎么样的路线学习呢?网上关于这个话题的文章很多,但是大部分只是对知识点和模块的简单罗列,只是让大家知道有这么些东西要学,我从校招生的角度来谈一下这个话题,介绍一下我从学习C++转向学习Java的学习历程,主要讨论Java的学习路线和找工作相关的情况,谈谈我是如何在短时间内通过自学Java进入阿里和美团的。当初选择语言的纠结我大一大二的

  • 惠普电脑蓝屏开不了机怎么解决_hp服务器售后电话800

    惠普电脑蓝屏开不了机怎么解决_hp服务器售后电话800在日常生活中,电脑出现蓝屏的无法启动的问题很常见,怎么处理电脑蓝屏问题呢?下面是小编为大家整理的关于hp电脑蓝屏后无法启动的相关资料,希望对您有所帮助!hp电脑蓝屏后无法启动的解决方法很多时候电脑蓝屏是因为电脑的硬件,电脑关机完成后,我们可以断开电脑的电源,然后对我们的内存条擦拭后,从新装机到我们的电脑主板上。清理电脑的各项主板接口也是必须的,我们可以根据顺序,依次清理电脑的各个接口,完成后即可。…

  • SiamFC 学习(论文、总结与分析)

    SiamFC 学习(论文、总结与分析)文章目录前言一、SiamFC论文学习1.介绍2.深度相似学习在跟踪中的应用2.1全卷积孪生结构3.引入库二、使用步骤1.引入库2.读入数据总结前言之前看了关于siamFC的论文、博客和代码,已经跑通了代码,但是,只是大概初步学习,没有认真的研究细节。为了后面更好的学习Siam系列的算法还是要重新认真的学习SiamFC。先附上论文和代码。论文:Fully-ConvolutionalSiameseNetworksforObjectTracking代码:基于pytorch框架的htt

  • 集群

    集群

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号