kafka
文章平均质量分 85
Java烟雨
Java课程、思维导图、学习路线、面试等架构资料,私信“03”免费获取
展开
-
牛人! 百度 T9 大佬纯手打的 Kafka 学习笔记, 吃透已胜过 80%Java 求职者
随着DT时代的到来,各大互联网企业都会遇到数据量激增,数据复杂度增加以及数据变化速率变快等问题,Kafka在处理这些问题上有较好的效果,所以Kafka儿乎成为了每-位大数据架构师,Java架构师的标配。因此深度掌握Kafka是一项非常重要的能力。httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。...原创 2022-07-24 14:30:36 · 301 阅读 · 2 评论 -
121道分布式面试题和答案
分布式事务相关面试题一共17道,后面不断完善。请说说你对分布式系统 CAP 理论的理解,CAP 分别代表什么含义?什么是二阶段提交?什么是三阶段提交?什么是补偿事务?你知道哪些分布式事务解决方案?为什么分布式系统的一致性和可用性不能同时满足?你是如何理解数据一致性的?数据一致性有哪几种模型?你在做系统设计时,如何选择实现强一致性还是弱一致性?在你的项目里,是如何设计分布式事务,实现最终一致性的?Sagas事务模型是什么?熟悉哪些分布式锁实现方案?分布式锁应该具备哪些条件?哪种分布式锁实现方案更好?你了解数据原创 2022-07-04 15:06:16 · 2055 阅读 · 5 评论 -
Kafka核心知识总结!
Apache Kafka是由LinkedIn采用Scala和Java开发的开源流处理软件平台,并捐赠给了Apache Software Foundation。该项目旨在提供统一的、高吞吐量、低延迟的平台来处理实时数据流。Kafka可以通过Kafka Connect连接到外部系统,并提供了Kafka Streams。「Kafka的特性」Kafka是一种分布式的,基于发布/订阅的消息系统,主要特性如下:「Kafka版本命名」我们在官网上下载Kafka时,会看到这样的版本:前面的版本号是编译Kafka源代码的Sc原创 2022-07-04 14:42:55 · 643 阅读 · 0 评论 -
【建议收藏】Kafka 面试连环炮, 看看你能撑到哪一步?
这篇文章干货很多,希望你可以耐心读完。原创 2022-07-01 13:53:43 · 456 阅读 · 0 评论 -
秒懂 kafka HA(高可用)
我们知道,kafka中每个topic被划分为多个partition,每个partition又有多个副本,那么这些分区副本是怎么均匀的分布在整个kafka集群的broker节点上的?partition副本的leader是通过什么算法选举出来的?partition副本的follower是怎么复制备份leader的数据的?本文我们就来说一说和 kafka 高可用相关的一些策略。01名词解释要想说明白kafka的HA机制,我们必须先搞明白几个缩写名词,1、AR、ISR、OSRAR:Assigned Replicas原创 2022-06-23 14:28:38 · 688 阅读 · 0 评论 -
大白话 kafka 架构原理
01PARTkafka简介Kafka最初由Linkedin公司开发,是一个分布式的、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常用于web/nginx日志、访问日志、消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。02PARTkafka的特性高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒;可扩展性:kafka集群支持热扩展;持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止丢失原创 2022-06-23 14:22:21 · 388 阅读 · 0 评论 -
真厉害,1 秒写入 10 万条消息,Kafka 写得这么快,都是因为这些优化。
Kafka 作为消息队列中的中坚力量,基本上是每次面试必问的知识点。而说到 Kafka,大家对它的印象就是快!异常地快!因此,为什么 Kafka 这么快,也是每次面试必问的知识点。对于混迹 Java 技术圈多年的我来说,Kafka 这么快的特性已经了然于胸。今天,就让我带着大家盘一盘!Kafka 写入速度非常快,主要得益于其系统架构设计,包括:PageCache批量压缩传输顺序、批量写磁盘多 partition 分散存储学过操作系统的同学都知道,内存是易丢失的存储介质,而磁盘则是不容易丢失的存储介质。但内存原创 2022-06-21 13:23:24 · 307 阅读 · 0 评论 -
实时数仓 | 京东计算架构演进之路
一、背景:从2004年开始,京东进军互联网线上化开始到至今,随着京东的高速发展,京东商城的订单量从万级到百万级、最终到达亿级。而对于实时的数据需求也是层出不穷,实时数仓、实时计算架构随着数据量的增长,不断进行革新与演进优化。二、京东实时计算架构演进之路(1)订单量万级、百万级(以京东海外站为例)在订单量万级、百万级别的时候,也存在不少实时的数据需求,比如:商家需要看看自己每天的成交量、老板需要看看整体的成交金额,以为后续的融资做准备。类似于现在很多的a、b轮创业公司数据体量。解决方案:而此时为了节省更少的资原创 2022-06-16 14:02:12 · 347 阅读 · 0 评论 -
Java后端学习路线(适合科班、非科班和已工作的仔)
在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线。Tip:请多欣赏一会,每个点看一下,看看什么地方是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是比较全的,有什么建议也可以留言给我。不知道大家都看了一下没,现在我们就要庖丁解牛了,我从上到下依次分析。你可能会会好奇,你不是讲后端学习路线嘛,为啥还有前端的部分,我只能告诉你,傻瓜,肤浅。我们可不能闭门造车,谁告诉你后端就不原创 2022-06-16 13:47:32 · 1328 阅读 · 6 评论 -
必看!java后端,亮剑诛仙(最全知识点)
你可能有所感悟。零散的资料读了很多,但是很难有提升。到处是干货,但是并没什么用,简单来说就是缺乏系统化。另外,噪音太多,雷同的框架一大把,我不至于全都要去学了吧。这里,我大体根据基础、Java基础、Java进阶给分了下类,挑的也都是最常用最重要的工具。 数据结构基本的数据结构是非常重要的,无论接触什么编程语言,这些基本数据结构都是首先要掌握的。具体的实现,就体现在java的集合类中。这些数据结构,就是这些复杂工具的具体原始形态,要烂记于心。培训机构一般没有时间普及基础知识,通过算法和数据结构,“通常”能够一原创 2022-06-16 13:31:34 · 184 阅读 · 0 评论 -
我以为我对Mysql索引很了解,直到我遇到了阿里的面试官
本文来自一位不愿意透露姓名的粉丝投稿相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在索引方面的知识,只是个小学生水平。以下,是我总结的一次阿里面试中关于索引有关的问题以及知识点。我们是怎原创 2022-06-16 13:15:18 · 137 阅读 · 0 评论 -
Spring面试专题及答案
2022年已经过去一半,大厂招聘也告一段落,不管2021年的结果如何,新的一年新的开始,愿所有美好都如期而至。下面是阿里、腾讯小伙伴们面试时总结的Spring面试基础题合集,希望大家在之后的面试季能拿到自己理想的offer!目录:1、什么是Spring框架?Spring框架有哪些主要模块?2、使用Spring框架能带来哪些好处?3、什么是控制反转(IOC)?什么是依赖注入?4、请解释下Spring框架中的IoC?5、BeanFactory和ApplicationContext有什么区别?6、Spring有几原创 2022-06-15 14:42:26 · 173 阅读 · 0 评论 -
GraphQL及元数据驱动架构在后端BFF中的实践
1 BFF的由来2 BFF背景下的核心矛盾3 BFF应用模式分析3.1 后端BFF模式3.2 前端BFF模式4 基于GraphQL及元数据的信息聚合架构设计4.1 整体思路4.2 核心设计5 针对GraphQL的优化实践5.1 使用简化5.2 性能优化6 新架构对研发模式的影响6.1 聚焦业务的开发模式6.2 研发流程升级7 总结8 参考文献9 招聘信息1 BFF的由来BFF一词来自Sam Newman的一篇博文《Pattern:Backends For Frontends》,指的是服务于前端的后端。BFF原创 2022-06-15 14:34:23 · 744 阅读 · 0 评论 -
架构师图谱·微服务&消息队列篇
“架构师图谱”是一个很宏大的命题,特别是优秀的架构师自身也是“由点到面再到图”,一点点成长积累起来,尝试写这系列文章的目的更多的是结合自身的一些经验和理解,来解读工程师和架构师所应具备的技能模型,这里会更偏向于后端技能,依赖于开源技术、云原生或者其他第三方服务。重点介绍一些技术栈、设计理念和适应场景,这些可以作为我们选型时的依据。所谓“架构即决策”,是在一个有约束的盒子中寻求最优解。这个有约束的盒子是团队经验、成本、资源、进度、业务所处阶段等编织、掺杂在一起的综合体。本质上无优劣,但是存在恰当的架构用在合适原创 2022-06-15 14:05:50 · 1724 阅读 · 0 评论 -
Kafka面试准备,收藏这一篇就够了
现在在脑海过一遍以下问题,是否能够回忆清楚为什么要用消息队列?为什么选择了kafka?kafka的组件与作用(架构)?kafka为什么要分区?Kafka生产者分区策略?kafka的数据可靠性怎么保证?(丢,重)kafka的副本机制?kafka的消费分区分配策略?kafka的offset怎么维护?kafka为什么这么快?(高效读写数据)Kafka消息数据积压,Kafka消费能力不足怎么处理?kafka事务是怎么实现的?Kafka中的数据是有序的吗?Kafka可以按照时间消费数据?Kafka单条日志传输大小?K原创 2022-06-15 13:54:58 · 102 阅读 · 0 评论 -
Java 后端自学之路
最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很迷茫,不知从何下手。我就以过来人的经历,写在这篇博客里,不一定都对,但都是我根据自己的经历总结出来的,供你们的参考。Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如 Spring 核心的 Ioc 和 AOP原创 2022-06-15 13:50:40 · 837 阅读 · 0 评论 -
学完这100多技术,能当架构师么?(非广告)
本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜欢的,大概也会有你所讨厌的家伙。这是我平常工作中打交道最多的工具,大小公司都适用。如果你有更好的,欢迎留言补充。一个大型的分布式系统,通常都会异步化,走消息总线。 消息队列作为最主要的基础组件,在整个体系架构中,有着及其重要的作用。kafka是目前最常用的消息队列,尤其是在大数据方面,有着极高的吞吐量。而rocketmq和rabbitmq,都是电信级别的消息队列,在业务上用的比较多。2019年了,不要再盯着JMS不放了(说的就是臃肿的ActiveM原创 2022-06-15 13:45:56 · 340 阅读 · 0 评论 -
这个队列的思路是真的好,现在它是我简历上的亮点了。
前几天在一个开源项目的 github 里面看到这样的一个 pr:光是看这个名字,里面有个 MemorySafe,我就有点陷进去了。我先给你看看这个东西: 这个肯定很眼熟吧?我是从阿里巴巴开发规范中截的图。为什么不建议使用 FixedThreadPool 和 SingleThreadPool 呢?因为队列太长了,请求会堆积,请求一堆积,容易造成 OOM。那么问题又来了:前面提到的线程池用的队列是什么队列呢?用的是没有指定长度的 LinkedBlockingQueue。没有指定长度,默认长度是 Integer.原创 2022-06-15 13:34:46 · 102 阅读 · 0 评论 -
消息中间件部署及比较:rabbitMQ、activeMQ、zeroMQ、rocketMQ、Kafka、redis
一发一存一消费,没有最好的消息队列中间件(简称消息中间件),只有最合适的消息中间件。消息队列常用的使用场景:消息队列是异步RPC的主要手段之一 应用方面:架构模型方面:吞吐量:可用性方面:集群负载均衡方面:基于erlang开发是采用Erlang语言实现的AMQP协议的消息中间件,最初起源于金融系统,用于在分布式系统中存储转发消息。RabbitMQ发展到今天,被越来越多的人认可,这和它在可靠性、可用性、扩展性、功能丰富等方面的卓越表现是分不开的。优点:缺点:基于java开发是Apache出品的、采原创 2022-06-15 13:08:09 · 1295 阅读 · 2 评论 -
kafka,还好我留了一手。
本文面试情节虚假,但知识真实,请在家人或者朋友的陪同下仔细观看,防止在观看的过程发呆、走神导致没学到知识。一位身穿格子衬衣,头发好似一拳超人的中年人走了过来,没错他就是面试官,他手握简历,若有所思,我当时害怕极了,然后他开口:小伙子啊,我们这边是基础架构的中间件组,既然你的简历没提到kafka,那我接下来问问你kafka的知识吧。我:好的,kafka平时看的不多,但也还了解一点,不是特别精通所以没写了。(嘿嘿,我是故意没写的,早就知道你要来这一套,kafka其实是俺最精通的东西了)面试官捋了捋他那稀疏的胡原创 2022-06-14 14:51:31 · 147 阅读 · 0 评论 -
简单聊一聊spring cloud stream和kafka的那点事
讲Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with shared messaging systems.The framework provides a flexible programming model built on already established and familiar Spring idioms and best practic原创 2022-06-14 14:25:30 · 1440 阅读 · 0 评论 -
腾讯云Kafka海量服务自动化运营实践
腾讯云CKafka是基于Apache Kafka 的分布式、高可扩展以及高吞吐的云端Kafka服务。腾讯云CKafka针对开源Kafka进行了多种优化,其中包括无锁队列优化、异步刷盘优化、多版本支持以及GC优化等优化手段,对开源Kafka性能达到了数倍的提高。与用户自己部署Kafka相比,腾讯云CKafka无需用户关心Kafka集群细节,用户无需维护Kafka集群直接使用,同时为用户提供丰富的监控指标。由于腾讯云CKafka与社区Kafka的协议一致,用户只需要够买实例后便可无缝接入。再者,CKafka允许原创 2022-06-14 14:21:22 · 326 阅读 · 0 评论 -
Kafka宕机后不再高可用?探究Kafka高可用实现
Kafka 宕机引发的高可用问题问题要从一次 Kafka 的宕机开始说起。笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的 RabbitMQ,而是采用了设计之初就为日志处理而生的 Kafka,所以我一直很好奇 Kafka的高可用实现和保障。从 Kafka 部署后,系统内部使用的 Kafka 一直运行稳定,没有出现不可用的情况。但最近系统测试人员常反馈偶有 Kafka 消费者收不到消息的情况,登陆管理界面发现三个节点中有一个节点宕机挂掉了。但是按照高可用的理念,三个节点还有两个节点可原创 2022-06-14 14:01:59 · 192 阅读 · 0 评论 -
懵了,Kafka、RabbitMQ到底选哪个?
经常有人问我这个问题很常见,而且很多人对二者的选择也把握不好。所以我决定写篇文章来详细说一下:Kafka 和 RabbitMQ 的区别,适用于什么场景?同时,这个问题在面试中也经常问到。下面我会通过 6 个场景,来对比分析一下 Kafka 和 RabbitMQ 的优劣。有这样一个需求:当订单状态变化的时候,把订单状态变化的消息发送给所有关心订单变化的系统。订单会有创建成功、待付款、已支付、已发货的状态,状态之间是单向流动的。好,现在我们把订单状态变化消息要发送给所有关心订单状态的系统上去,实现方式就是用消息原创 2022-06-14 13:52:00 · 1949 阅读 · 0 评论 -
Kafka 面试连环炮, 看看你能撑到哪一步?
今天我们就来安排一期关于 Kafka 的核心面试题连环炮, 从「基础知识」、「进阶提升」、「架构调优」 三个方向梳理面试题,希望在金三银四的关键节点可以帮助到大家。这篇文章干货很多,希望你可以耐心读完。谈谈你对 kafka 的集群架构是如何理解的?...原创 2022-06-14 13:46:58 · 114 阅读 · 0 评论 -
非科班无实习如何入职腾讯?后台开发岗个人校招学习路线分享!
从去年一直拖到现在的学习路线一直没有回馈给牛油们。上周答辩结束,正式准备毕业了,终于能有时间献上一封后台开发学习路线,如有疏漏或者疑问尽可在下方评论或者私信我。先介绍一下情况吧,2022届单985通信背景非科班无实习水硕,C++经典烂大街项目,网络服务器,去年二三月份才开始准备的,正式刷题是从去年2月份开始的,最后也只是刷了200+,项目是四月份开始整的,八股文准备就更晚了,是从六七月份开始的(大佬们都有意向书了,我才刚开始背八股,卑微),和有大厂实习的科班大佬ssp们相比,真的是不敢大声说话,毕竟大佬在原创 2022-06-14 13:39:44 · 3975 阅读 · 2 评论 -
炸裂!MySQL 82 张图带你飞
这篇文章我们来了解一下 MySQL 中的高级内容。其他文章:138 张图带你 MySQL 入门47 张图带你 MySQL 进阶!!!本文思维导图如下。我们知道,MyISAM 和 MEMORY 存储引擎支持,InnoDB 存储引擎支持,BDB 存储引擎支持。各个锁定级别的特点如下页级锁:销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般表级锁:表级锁是对整张表进行加锁,MyISAM 和 MEMORY 主要支持表级锁,表级锁加锁快,不会出现死锁,锁的粒度比较粗,并发度最低行级锁:原创 2022-06-14 13:25:08 · 769 阅读 · 0 评论 -
搞透 Kafka 的存储架构,看这篇就够了
今天聊聊 Kafka 的存储系统架构设计。说到存储系统,大家可能对 MySQL 比较熟悉,也知道 MySQL 是基于 B+ 树来作为它的索引数据结构。Kafka 又是基于什么机制来存储?为什么要设计成这样?它解决了什么问题?又是如何解决的?里面又用到了哪些高大上的技术?带着这些疑问,我们就来和你聊一聊 Kafka 存储架构设计背后的深度思考和实现原理。认真读完这篇文章,相信你会对 Kafka 存储架构有更加深刻的理解,也能有思路来触类旁通其他存储系统的架构。 1 Kafka 存储场景剖析在讲解 Kafka原创 2022-06-14 13:17:31 · 1074 阅读 · 0 评论 -
Kafka架构设原来是这样的!我都惊呆了
消息队列模式:点对点:1:1。就是一个队列只能由一个消费者进行消费,这个消费者消费完毕就把消息进行删除,不会再给别的消费者。只能消费者拉消息。发布/订阅:1:多缺点:消息延迟(比如每隔2秒进行拉取,就会造成2秒的延迟),每一个消费方都处于忙循环,一直检测有没有消息。(kafka)kafka改进:使用长轮询:消费者去 Broker 拉消息,定义了一个超时时间,也就是说消费者去请求消息,如果有的话马上返回消息,如果没有的话消费者等着直到超时,然后再次发起拉消息请求。不会频繁的进行拉取。缺点:推送速率难以适应消费原创 2022-06-13 14:28:20 · 144 阅读 · 0 评论 -
支持百万级TPS,Kafka是怎么做到的?答案藏在这10张图里
谈到大数据传输都会想到 Kafka,Kafka 号称大数据的杀手锏,在业界有很多成熟的应用场景并且被主流公司认可。这款为大数据而生的消息中间件,以其百万级TPS的吞吐量名声大噪,迅速成为大数据领域的宠儿,在数据采集、传输、存储的过程中发挥着举足轻重的作用。在业界已经有很多成熟的消息中间件如:RabbitMQ, RocketMQ, ActiveMQ, ZeroMQ,为什么 Kafka 在众多的敌手中依然能有一席之地,当然靠的是其强悍的吞吐量。下面带领大家来揭秘。先用一张思维导图直接告诉你答案:Kafka 支持原创 2022-06-13 14:18:48 · 298 阅读 · 0 评论 -
Kafka 万亿级消息实践之资源组流量掉零故障排查分析
一、Kafka 集群部署架构为了让读者能与小编在后续的问题分析中有更好的共鸣,小编先与各位读者朋友对齐一下我们 Kafka 集群的部署架构及服务接入 Kafka 集群的流程。为了避免超大集群我们按照业务维度将整个每天负责十万亿级消息的 Kafka 集群拆分成了多个 Kafka 集群。拆分粒度太粗会导致单一集群过大,容易由于流量突变、资源隔离、限速等原因导致集群稳定性和可用性受到影响,拆分粒度太细又会因为集群太多不易维护,集群内资源较少应对突发情况的抗风险能力较弱。由于 Kafka 数据存储和服务在同一节点上原创 2022-06-13 14:14:06 · 112 阅读 · 0 评论 -
关于 Kafka 的一些面试题目
前言:上周客串了一下面试官,在这里就简单记录一下期间我问到的一些关于 Kafka 的面试题目,这些都是我平时在学习 Kafka 的一些总结要点。问题:谈谈你对 kafka 的整体认识?谈谈 Kafka 吞吐量为何如此高?谈谈你对生产者储水池机制的理解 如何提高 kafka 吞吐量?生产者 producer 是线程安全的吗?多线程实例还是单线程实例优缺点?消费者 consumer 是线程安全的吗?多线程实例、单线程实例、单 consumer + 多 worker 线程的优缺点? 消息拉取时原创 2022-06-13 14:06:07 · 184 阅读 · 0 评论 -
kafka的工作原理
消息队列的使用场景?消息队列常见的使用场景有:异步处理、应用解耦、流量消峰。举个栗子:我们有一个订单系统。异步处理场景:下单成功后需要短信通知客户,并且给客户加积分。如果串行方式:客户下单写入订单成功后,向短信系统发送通知请求,成功后再向积分系统发送增加积分请求,最后再返回给客户下单成功。如果采用异步方式:客户下单写入订单成功后写入消息队列,写入成功后即可返回给客户端。短信系统和积分系统异步读取消息队列,执行相关操作。与串行的差别是,并行的方式可以提高处理的时间。应用解耦场景:如上例,使用消息队列,订单业务原创 2022-06-13 13:58:51 · 378 阅读 · 0 评论 -
实时数仓系列-网易云音乐基于 Flink + Kafka 的实时数仓建设实践
一、背景介绍(一)流平台通用框架目前流平台通用的架构一般来说包括消息队列、计算引擎和存储三部分,通用架构如下图所示。客户端或者 web 的 log 日志会被采集到消息队列;计算引擎实时计算消息队列的数据;实时计算结果以 Append 或者 Update 的形式存放到实时存储系统中去。目前,我们常用的消息队列是 Kafka,计算引擎一开始我们采用的是 Spark Streaming,随着 Flink 在流计算引擎的优势越来越明显,我们最终确定了 Flink 作为我们统一的实时计算引擎。(二)为什么选 Kafk原创 2022-06-13 13:53:14 · 561 阅读 · 1 评论 -
Kafka Connect 构建大规模低延迟的数据管道
很长一段时间以来,公司所做的大部分数据处理都是作为批作业运行,例如,从数据库中转储的 CSV 文件、在一天结束时收集的日志文件等。但企业是实时一直运营的,与其只在一天结束时处理数据,还不如在数据到达时就对其做出反应?这是流处理的新兴世界。但是只有当数据捕获以流的方式完成时,流处理才成为可能;毕竟,我们无法将每天批量处理的 CSV 转储作为流处理。这种向流处理的转变推动了 Apache Kafka 的流行。但是,即使使用 Kafka,构建这种类型的实时数据管道也需要付出一些努力。Apache Kafka 0.原创 2022-06-13 13:38:34 · 207 阅读 · 0 评论 -
基于SSD的Kafka应用层缓存架构设计与实现
Kafka在美团数据平台的现状Kafka出色的I/O优化以及多处异步化设计,相比其他消息队列系统具有更高的吞吐,同时能够保证不错的延迟,十分适合应用在整个大数据生态中。目前在美团数据平台中,Kafka承担着数据缓冲和分发的角色。如下图所示,业务日志、接入层Nginx日志或线上DB数据通过数据采集层发送到Kafka,后续数据被用户的实时作业消费、计算,或经过数仓的ODS层用作数仓生产,还有一部分则会进入公司统一日志中心,帮助工程师排查线上问题。目前美团线上Kafka规模:集群规模:节点数达6000+,集群数1原创 2022-06-13 13:28:51 · 283 阅读 · 0 评论 -
Kafka的心跳处理机制竟然用到了时间轮算法?
Broker端与客户端的心跳在Kafka中非常的重要,因为一旦在一个心跳过期周期内(默认10s),Broker端的消费组组协调器(GroupCoordinator)会把消费者从消费组中移除,从而触发重平衡。在2.4.x以下其版本中,消费组一旦进入重平衡状态,该消费组内所有消费者全部暂停消费,直到重平衡完成。本文将来探讨Kafka的心跳机制的具体实现。本文的组织结构如下:源码解读Kafka心跳机制Kafka心跳架构设计亮点(时间轮调度算法实现原理图)在介绍源码分析之前介绍笔直的一条源码分析经验:找准入口,了解原创 2022-06-13 13:23:44 · 161 阅读 · 0 评论 -
一文理解Kafka如何做到高吞吐
Kafka把topic中一个Parition大文件分成多个小文件segment,通过多个小文件segment,就容易定期清除或删除已经消费完的文件,减少磁盘占用。为了进一步的查询优化,Kafka默认为分段后的数据文件建立了索引文件,就是文件系统上的.index文件。索引文件通过稀疏存储,降低index文件元数据占用的空间大小。 因为硬盘每次读写都会寻址和写入,其中寻址是一个耗时的操作。所以为了提高读写硬盘的速度,Kafka使用顺序I/O,来减少了寻址时间:收到消息后Kafka会把数据插入到文件末尾,每个消费原创 2022-06-12 14:55:35 · 784 阅读 · 0 评论 -
Spring Kafka中通过参数配置解决超时问题
背景这是我们团队负责的一个不太核心的服务。之前与外部交互时应外部要求由普通kafka集群改成加密kafka集群。我们是数据生产端。改的过程中并跑上线,60%的请求耗时增加了2倍,也还是在百毫秒的量级可以接受。但是每次重启的第一个请求要5s以上,会超过;运行过程中,一两个月也会有一次超时。因为我们有三次重试,整体没有影响成功率。上线的时候我们问过网络组,还专门请教过公司专业负责kafka的团队。结论是:第一,这个慢是外部交互方的问题,不是咱们这边可以处理的;第二,参数上也没有什么可以调优的。我们团队内部还是不原创 2022-06-12 14:50:18 · 2121 阅读 · 0 评论 -
实时数仓在搜索的实践应用(Kafka)
一、概述Apache Kafka 发展至今,已经是一个很成熟的消息队列组件了,也是大数据生态圈中不可或缺的一员。Apache Kafka 社区非常的活跃,通过社区成员不断的贡献代码和迭代项目,使得 Apache Kafka 功能越发丰富、性能越发稳定,成为企业大数据技术架构解决方案中重要的一环。Apache Kafka 作为一个热门消息队列中间件,具备高效可靠的消息处理能力,且拥有非常广泛的应用领域。那么,今天就来聊一聊基于 Kafka 的实时数仓在搜索的实践应用。二、为什么需要 Kafka在设计大数据技术原创 2022-06-12 14:42:38 · 288 阅读 · 0 评论