
kafka
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
面试官问:上亿数据量下,Kafka是如何优化JVM GC问题的?
大家都知道Kafka是一个高吞吐的消息队列,是大数据场景首选的消息队列,这种场景就意味着发送单位时间消息的量会特别的大,那既然如此巨大的数据量,kafka是如何支撑起如此庞大的数据量的分发的呢?今天我们从kafka架构以如何优化GC两个方面讲解kafka架构既然要说kafka是如何通过内存缓冲池设计来优化JVM的GC问题,那么,如果不清楚kafka 的架构设计,又怎么更好的调优呢?起码的我们要知道基础的才能往更好的出发呀,对把先来看技术名词 Topic:用于划分Message的逻辑.转载 2020-08-22 11:16:39 · 563 阅读 · 0 评论 -
Kafka 为什么那么快的 6 个原因!
无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker,二是 Consumer 从 broker 读取数据。那 Kafka 的快也就体现在读写两个方面了,下面我们就聊聊 Kafka 快的原因。1. 利用 Partition 实现并行处理我们都知道 Kafka 是一个 Pub-Sub 的消息系统,无论是发布还是订阅,都要指定 Topic。Topic 只是一个逻辑的概念。每个 Topic 都包含一个或多个 Par转载 2020-08-12 20:42:58 · 4462 阅读 · 1 评论 -
面试官:知道时间轮算法吗?在Netty和Kafka中如何应用的?
最近看 Kafka 看到了时间轮算法,记得以前看 Netty 也看到过这玩意,没太过关注。今天就来看看时间轮到底是什么东西。为什么要用时间轮算法来实现延迟操作?延时操作 Java 不是提供了 Timer 么?还有 DelayQueue 配合线程池或者 ScheduledThreadPool 不香吗?我们先来简单看看 Timer、DelayQueue 和 ScheduledThreadPool 的相关实现,看看它们是如何实现延时任务的,源码之下无秘密。再来剖析下为何 Netty 和 Kafka转载 2020-08-06 10:46:30 · 344 阅读 · 0 评论 -
基于 Kafka 与 Debezium 构建实时数据同步
起源在进行架构转型与分库分表之前,我们一直采用非常典型的单体应用架构:主服务是一个 Java WebApp,使用 Nginx 并选择 Session Sticky 分发策略做负载均衡和会话保持;背后是一个 MySQL 主实例,接了若干 Slave 做读写分离。在整个转型开始之前,我们就知道这会是一块难啃的硬骨头:我们要在全线业务飞速地扩张迭代的同时完成架构转型,因为这是实实在在的”给高速行驶的汽车换轮胎”。为了最大限度地减少服务拆分与分库分表给业务带来的影响(不影响业务开发也是架构转型的前提),我们转载 2020-07-27 09:11:55 · 3066 阅读 · 0 评论 -
选型必看:RabbitMQ 七战 Kafka,差异立现
作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们转载 2020-07-05 21:05:39 · 374 阅读 · 1 评论 -
面试官:你对Kafka比较熟? 那说说kafka日志段如何读写的吧?
引子之所以写这篇文章是因为之前面试时候被面试官问到(倒)了,面试官说:“你说你对Kafka比较熟?看过源码? 那说说kafka日志段如何读写的吧?”我心里默默的说了句 “擦…我说看过一点点源码,不是亿点点。早知道不提这句了!”,那怎么办呢,只能回家等通知了啊。但是为了以后找回场子,咱也不能坐以待毙,日拱一卒从一点点到亿点点。今天我们就来看看源码层面来Kafka日志段的是如何读写的。Kafka的存储结构总所周知,Kafka的Topic可以有多个分区,分区其实就是最小的读取和存储结构,即转载 2020-07-03 13:59:18 · 466 阅读 · 0 评论 -
Kafka如何通过精妙的架构设计优化JVM GC问题
“这篇文章,同样给大家聊一个硬核的技术知识,我们通过Kafka内核源码中的一些设计思想,来看你设计Kafka架构的技术大牛,是怎么优化JVM的GC问题的?1、Kafka的客户端缓冲机制首先,先得给大家明确一个事情,那就是在客户端发送消息给kafka服务器的时候,一定是有一个内存缓冲机制的。也就是说,消息会先写入一个内存缓冲中,然后直到多条消息组成了一个Batch,才会一次网络通信...转载 2020-03-21 16:47:46 · 322 阅读 · 0 评论 -
最近看Kafka源码,着实被它的客户端缓冲池技术优雅到了
最近看kafka源码,着实被它的客户端缓冲池技术优雅到了。忍不住要写篇文章赞美一下(哈哈)。注:本文用到的源码来自kafka2.2.2版本。背景当我们应用程序调用kafka客户端 producer发送消息的时候,在kafka客户端内部,会把属于同一个topic分区的消息先汇总起来,形成一个batch。真正发往kafka服务器的消息都是以batch为单位的。如下图所示:...转载 2020-03-21 16:44:53 · 346 阅读 · 0 评论 -
跟Kafka学技术系列之时间轮
写在前面kafka是一个分布式消息中间件,其高可用高吞吐的特点是大数据领域首选的消息中间件,Kafka是分布式消息队列的顺序读写文件分段组织串联起来思想的鼻祖,包括RocketMq这些消息队列都是借鉴了Kafka早期的架构和设计思路改造而来,所以在架构设计层面,Kafka有非常多值得借鉴的地方。本文是作者介绍Kafka优秀架构设计文章中的一篇,文中的代码和流程图均是base on 0.10.2...转载 2020-03-21 16:41:47 · 478 阅读 · 1 评论 -
通俗易懂,带你了解Kafka
一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画像分析。按照刚刚前面提到的消息系统的作用,我们知道了消息系统其实就是一个模拟缓存...转载 2020-03-14 11:07:33 · 409 阅读 · 0 评论 -
基于 Kafka + Flink + Redis 的电商大屏实时计算案
前言阿里的双11销量大屏可以说是一道特殊的风景线。实时大屏(real-time dashboard)正在被越来越多的企业采用,用来及时呈现关键的数据指标。并且在实际操作中,肯定也不会仅仅计算一两个维度。由于Flink的“真·流式计算”这一特点,它比Spark Streaming要更适合大屏应用。本文从笔者的实际工作经验抽象出简单的模型,并简要叙述计算流程(当然大部分都是源码)。数据格式...转载 2020-02-03 22:10:31 · 638 阅读 · 0 评论 -
大白话 + 13 张图解 Kafka
前言应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画...转载 2020-01-19 10:53:40 · 469 阅读 · 0 评论 -
面试问Kafka,这一篇全搞定
应大部分的小伙伴的要求,今天这篇咱们用大白话带你认识 KafkaKafka基础消息系统的作用大部分小伙伴应该都清楚,这里用机油装箱举个例子:所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画像分析。...转载 2019-12-05 20:10:18 · 329 阅读 · 0 评论 -
为什么 Kafka 速度那么快?
来源:cnblogs.com/binyue/p/10308754.htmlKafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。针对Kaf...转载 2019-09-14 12:06:30 · 210 阅读 · 0 评论 -
Kafka参数详解及调优--生产者
在实际的kafka开发中,我们会发现,无论是生产者还是消费者,都需要构建一个Properties对象,里面设置了很多参数。对于很多初学者来说,会看不懂这些参数分别代表什么含义。在本篇文章我们就来详细地了解一下这些参数的作用,并探讨下如何使用合理的配置去优化提高生产/消费效率kafka生产者参数Properties props = new Properties();props.pu...转载 2019-07-22 10:56:31 · 4380 阅读 · 0 评论 -
面试问:Kafka 为什么速度那么快?
Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。针对Kafka的基准测试可以参考,Apache Kafka基准测试:每秒写入2百万(在三台...转载 2019-06-20 15:07:29 · 319 阅读 · 0 评论 -
震惊!原来这才是Kafka的“真面目”!
出处:https://www.jianshu.com/p/d3e963ff8b70Kafka 是一个分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。Kafka 对外使用 Topic 的概念,生产者往 Topic 里写消息,消费者从中读消息。为了做到水平扩展,一个 T...转载 2019-05-21 10:12:57 · 494 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线(续:Kafka)
Spring Cloud Bus除了支持RabbitMQ的自动化配置之外,还支持现在被广泛应用的Kafka。在本文中,我们将搭建一个Kafka的本地环境,并通过它来尝试使用Spring Cloud Bus对Kafka的支持,实现消息总线的功能。由于本文会以之前Rabbit的实现作为基础来修改,所以先阅读《Spring Cloud构建微服务架构(七)消息总线》有助于理解本文。Kafka简介K...转载 2017-03-04 09:06:23 · 3152 阅读 · 0 评论 -
消息队列设计的精髓基本都藏在本文里了
当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面。过程中我们会参考这些成熟消息队列的很多重要思想。本文首先会阐述什么时候你需要一个消息队列,然后以Push模型为主,从零开始分...转载 2016-07-20 11:37:23 · 14394 阅读 · 6 评论 -
分布式之消息队列复习精讲
引言为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。 小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点...转载 2018-11-09 10:06:02 · 257 阅读 · 0 评论 -
消息队列常见的几种使用场景介绍!
一、简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。 二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景。1、异步处理...转载 2018-11-09 09:45:39 · 323 阅读 · 0 评论 -
RabbitMQ 和 Kafka 到底怎么选?
前言开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个? RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。 broker:每个节点运行的服务程序,功能为维护该节点的队列的增删以及转发队列操作请求。 master...转载 2018-11-12 10:59:20 · 651 阅读 · 0 评论 -
假笨说-协助美团kafka团队定位到的一个JVM Crash问题
概述有挺长一段时间没写技术文章了,正好这两天美团kafka团队有位小伙伴加了我微信,然后咨询了一个JVM crash的问题,大家对crash的问题都比较无奈,因为没有现场,信息量不多,碰到这类问题我们应该怎么去分析,我想趁这次机会和大家分享一下我针对这种问题的分析过程。不过我觉得这个分析过程可能会有点绕,因为crash文件太大,不能让大家看到crash文件的全貌而对让大家理解起来没那么有体...转载 2018-11-27 11:36:38 · 445 阅读 · 0 评论 -
Kafka 压测:3 台廉价服务器竟支撑 200 万 TPS
这篇文章是关于LinkedIn如何用kafka作为一个中央发布-订阅日志,在应用程序,流处理,hadoop数据提取之间集成数据。无论如何,kafka日志一个好处就是廉价。百万级别的TPS都不是很大的事情。因为日志比起数据库或者K-V存储是更简单的东西。我们的生产环境kafka集群每天每秒处理上千万读写请求,并且只是构建在一个非常普通的硬件上。接下来让我们做一些压测,看看kafka究竟多么牛逼...转载 2019-02-02 14:43:32 · 1061 阅读 · 1 评论 -
干货|为什么Kafka不支持读写分离
在 Kafka 中,生产者写入消息、消费者读取消息的操作都是与 leader 副本进行交互的,从 而实现的是一种主写主读的生产消费模型。数据库、Redis 等都具备主写主读的功能,与此同时还支持主写从读的功能,主写从读也就是读写分离,为了与主写主读对应,这里就以主写从读来称呼。Kafka 并不支持主写从读,这是为什么呢?从代码层面上来说,虽然增加了代码复杂度,但在 Kafka 中这种功能完全可...转载 2019-02-27 17:34:15 · 4321 阅读 · 1 评论 -
知乎基于Kubernetes的kafka平台的设计和实现
我是知乎技术中台工程师,负责知乎存储相关的组件。我的分享主要基于三个,第一,简单介绍一下Kafka在知乎的应用,第二,为什么做基于Kubernetes的Kafka平台。第三,我们如何去实现基于Kubernetes的kafka平台。Kafka在知乎的应用Kafka是一个非常优秀的消息或者数据流的组件,在知乎承载了日志、数据收集、消息队列等服务,包括运行的DEBUG日志关键性日志。比如我们...转载 2019-03-06 17:02:19 · 736 阅读 · 0 评论 -
震惊了!原来这才是 Kafka!(多图+深入)
简介kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横...转载 2019-03-15 09:49:21 · 1858 阅读 · 0 评论 -
干货|kafka最佳实践
这里翻译一篇关于 Kafka 实践的文章,内容来自 DataWorks Summit/Hadoop Summit上一篇分享,PPT 参考https://www.slideshare.net/HadoopSummit/apache-kafka-best-practices里面讲述了很多关于 Kafka 配置、监控、优化的内容,绝对是在实践中总结出的精华,有很大的借鉴参考意义,本文主要是根据 P...转载 2019-03-12 09:49:45 · 2033 阅读 · 0 评论 -
面试|图解kafka的高可用机制
对于一个复杂的分布式系统,如果没有丰富的经验和牛逼的架构能力,很难把系统做得简单易维护,我们都知道,一个软件的生命周期中,后期维护占了70%,所以系统的可维护性是极其重要的, kafka 能成为大数据领域的事实标准,很大原因是因为运维起来很方便简单,今天我们来看下 kafka 是怎么来简化运维操作的。kafka 使用多副本来保证消息不丢失,多副本就涉及到kafka的复制机制,在一个超大规模...转载 2019-03-12 09:57:34 · 812 阅读 · 0 评论 -
分享一波Kafka面试题&答案
之前已经分享了好几篇关于 Kafka 的文章,从基本概念和使用到高可用机制解析到最佳实践。今天分享几个Kafka的面试题,这些面试题是大数据工程师在面试中经常问到的一些问题,在此整理一下,分享给大家。如果你是 Java 开发工程师,也可以看看这份面试题目:假如我是面试官,我会这样虐你1 什么是kafkaKafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成...转载 2019-03-12 09:58:36 · 2565 阅读 · 0 评论 -
消息中间件选型分析 —— 从 Kafka 与 RabbitMQ 的对比来看全局
一、前言 二、各类消息队列简述 三、选型要点概述 四、消息中间件选型误区探讨 一、前言消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中...转载 2018-10-22 11:22:19 · 429 阅读 · 0 评论