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;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年10月14日 下午3:36
下一篇 2022年10月14日 下午3:36


相关推荐

  • Android 中使用AES-CMAC数据加密

    Android 中使用AES-CMAC数据加密一般需要分为三个步骤 算出 L 的值 然后算出 K1 K2 的值 可以对比 AES 在线加密工具作为对比 算法逻辑 paramkey paramdata return publicstatic Aes Cmac01 byte key byte data 子密钥生成 步骤 1 将具有密钥 K 的 AES 128 应用于全零输

    2026年3月16日
    2
  • java加密工具类,可设置对应的加解密key

    java加密工具类,可设置对应的加解密key

    2022年4月3日
    52
  • 【C/C++面试必备】面向对象与面向过程的区别

    【C/C++面试必备】面向对象与面向过程的区别这篇文章来说下面向对象编程 那什么是面向对象编程呢 是这样 还是这样 当然 都不是 介绍面向对象之前 那必须先说一下面向过程 什么是面向过程呢 面向过程 Procedure OrientedProg 简称 POP 是一种编程模型 由一系列要执行的计算步骤组成 通常采用自上而下 顺序执行的方式 面向过程的编程语言包括 C Fortran Pascal Basic 等 下面来看一个简单的例子 咱们以把大象放进冰箱为例 面向过程的方式分为三步 1

    2026年3月19日
    2
  • javascript格式化输出的实现(MuJS)

    javascript格式化输出的实现(MuJS)MuJS是一款支持嵌入式开发的轻量级javascript解释器。javascript主要是针对web开发的脚本语言,所以主要借助浏览器来调试;但mujs针对的是嵌入式开发,调试时的交互主要靠输入输出终端,javascript本身是不支持的,所以需要调用c语言的打印函数来实现。下面给出两个例子,一个是普通输出,符合脚本语言的解释性语言的特点,不考虑变量的类型;另一个是简单的格式化输出。前一个…

    2025年6月14日
    5
  • Pycharm设置解释器「建议收藏」

    Pycharm设置解释器「建议收藏」背景:最近需要改文章,增加实验,要把之前的实验跑起来。其间,遇到一个很诡异的问题,在一个工程里跑得很正常的程序,到了另外一个工程里,相似的文件,只是修改了一点参数而已,就会报错,如ModuleNotFoundError:Nomodulenamed’tensorflow.contrib.slim’,当时就怀疑是不是解释器设置问题。由于当时夜黑风高,困意来袭,解释器位置设置竟然也找不到,作罢。第二天直接复制粘贴找问题原因无果。问题:果然是解释器设置问题。默认的解释器是base的python环境,由.

    2022年8月25日
    8
  • 机器学习 之 感知机(Perceptron)

    机器学习 之 感知机(Perceptron)文章目录一 简介二 模型三 感知机算法的原始形式 1 理论 2 实现 3 效果四 感知机算法的对偶形式 1 理论 2 实现 3 效果一 简介今天来学习下机器学习的敲门砖 感知机模型 网上查了很多中英文资料 得知感知机是在 1957 年由 FrankRosenbl 提出的 它被成为机器学习领域最为基础的模型 虽然是最为基础的 但是它在机器学习的领域中 有着举足轻重的地位 它是 SVM 支持向量机 和 NN 神

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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