首页
学习
活动
专区
工具
TVP
发布

码农架构

公众号:码农架构
专栏作者
388
文章
476637
阅读量
43
订阅数
如何基于Spring Event事件拓展成“全网事件”?
导读:今天我们聊一个技术改造,针对Spring的ApplicationEvent事件做下优化。总结本篇文章希望对从事相关工作的同学能够有所帮助或者启发 。
码农架构
2022-04-13
8650
Kafka宕机后不再高可用?探究Kafka高可用实现
导读:笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的RabbitMQ,而是采用了设计之初就为日志处理而生的Kafka。
码农架构
2021-09-18
3560
Kafka 2.8.0 正式发布,与ZooKeeper正式分手!
导读:目前 Kafka 已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。目前越来越多的开源分布式处理系统如 Cloudera、Storm、Spark、Flink 等都支持与 Kafka 集成。
码农架构
2021-05-08
1.5K1
Kafka 提供哪些日志清理策略?
在 Kafka 的日志管理器中会有一个专门的日志删除任务来周期性地检测和删除不符合保留条件的日志分段文件,这个周期可以通过 broker 端参数 log.retention.check.interval.ms 来配置,默认值为300000,即5分钟。当前日志分段的保留策略有3种:
码农架构
2021-03-21
2.2K0
Kafka 架构中 ZooKeeper 以怎样的形式存在?
Kafka 运行环境还需要涉及 ZooKeeper,Kafka 和 ZooKeeper 都是运行在 JVM 之上的服务。但是Kafka架构中 ZooKeeper 以怎样的形式存在?
码农架构
2021-03-10
2.1K0
Kafka 中所谓的 ‘零拷贝’ 技术到底是什么?
除了消息顺序追加、页缓存等技术,Kafka 还使用零拷贝技术来进一步提升性能。所谓的零拷贝是指将数据直接从磁盘文件复制到网卡设备中,而不需要经由应用程序之手。零拷贝大大提高了应用程序的性能,减少了内核和用户模式之间的上下文切换。对 Linux 操作系统而言,零拷贝技术依赖于底层的 sendfile() 方法实现。对应于 Java 语言,FileChannal.transferTo() 方法的底层实现就是 sendfile() 方法。
码农架构
2021-02-26
1.5K0
Kafka 是怎么存储的?为什么速度那么快?
Kafka 依赖于文件系统(更底层地来说就是磁盘)来存储和缓存消息。在我们的印象中,对于各个存储介质的速度认知大体同下图所示的相同,层级越高代表速度越快。很显然,磁盘处于一个比较尴尬的位置,这不禁让我们怀疑 Kafka 采用这种持久化形式能否提供有竞争力的性能。在传统的消息中间件 RabbitMQ 中,就使用内存作为默认的存储介质,而磁盘作为备选介质,以此实现高吞吐和低延迟的特性。然而,事实上磁盘可以比我们预想的要快,也可能比我们预想的要慢,这完全取决于我们如何使用它。
码农架构
2021-02-24
1.6K1
深入理解Kafka消费端分区分配策略
Kafka 提供了消费者客户端参数 partition.assignment.strategy 来设置消费者与订阅主题之间的分区分配策略。默认情况下,此参数的值为 org.apache.kafka.clients.consumer.RangeAssignor,即采用 RangeAssignor 分配策略。除此之外,Kafka 还提供了另外两种分配策略:RoundRobinAssignor 和 StickyAssignor。消费者客户端参数 partition.assignment.strategy 可以配置多个分配策略,彼此之间以逗号分隔。
码农架构
2021-02-23
3.4K1
Kafka 中的消息存储在磁盘上的目录布局是怎样的?
Kafka 中的消息是以主题为基本单位进行归类的,各个主题在逻辑上相互独立。每个主题又可以分为一个或多个分区,分区的数量可以在主题创建的时候指定,也可以在之后修改。每条消息在发送的时候会根据分区规则被追加到指定的分区中,分区中的每条消息都会被分配一个唯一的序列号,也就是通常所说的偏移量(offset),具有4个分区的主题的逻辑结构见下图。
码农架构
2021-02-12
1.1K0
如何开发一个完善的Kafka生产者客户端?
Kafka 起初是 由 LinkedIn 公司采用 Scala 语言开发的一个多分区、多副本且基于 ZooKeeper 协调的分布式消息系统,现已被捐献给 Apache 基金会。目前 Kafka 已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。目前越来越多的开源分布式处理系统如 Cloudera、Storm、Spark、Flink 等都支持与 Kafka 集成。
码农架构
2021-02-12
1.5K0
Kafka 中两个重要概念:主题与分区
在 Kafka 中还有两个特别重要的概念—主题(Topic)与分区(Partition)。Kafka 中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题(发送到 Kafka 集群中的每一条消息都要指定一个主题),而消费者负责订阅主题并进行消费。这里补充了对Kafka基本概念了解,附上上篇中的Kafka 体系结构概要图便于理解
码农架构
2021-02-12
4.8K1
开发Kafka消费者客户端需要注意哪些事项?
在了解了消费者与消费组之间的概念之后,我们就可以着手进行消费者客户端的开发了。在 Kafka 的历史中,消费者客户端同生产者客户端一样也经历了两个大版本:第一个是于 Kafka 开源之初使用 Scala 语言编写的客户端,我们可以称之为旧消费者客户端或 Scala 消费者客户端;第二个是从 Kafka 0.9.x 版本开始推出的使用 Java 编写的客户端,我们可以称之为新消费者客户端或 Java 消费者客户端,它弥补了旧客户端中存在的诸多设计缺陷。
码农架构
2021-02-12
6210
Kafka 中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?
最新一位朋友在知乎上私信我问了一些他在面试中遇到Kafka的问题,由于自己没有及时回复,这位朋友后来通过联系方式加了微信私聊了很久。其中分享一个问题就是 Kafka 中的分区器、序列化器、拦截器是否了
码农架构
2021-02-12
2K0
图解分析:Kafka 生产者客户端工作原理
消息在真正发往 Kafka 之前,有可能需要经历拦截器、序列化器和分区器等一系列的作用,前面已经做了一系列分析。那么在此之后又会发生什么呢?先看一下生产者客户端的整体架构,如下图所示。
码农架构
2021-02-12
1.1K0
都在用Kafka ! 消息队列序列化怎么处理?
生产者需要用序列化器(Serializer)把对象转换成字节数组才能通过网络发送给Kafka。而在对侧,消费者需要用反序列化器(Deserializer)把从 Kafka 中收到的字节数组转换成相应的对象。
码农架构
2021-02-08
2K0
Kafka中所谓的分区器,到底是什么?
消息在通过 send() 方法发往 broker 的过程中,有可能需要经过拦截(Interceptor)、序列化器(Serializer)和分区器(Partitioner)的一系列作用之后才能被真正地发往 broker。拦截器一般不是必需的,而序列化器是必需的。消息经过序列化之后就需要确定它发往的分区,如果消息 ProducerRecord 中指定了 partition 字段,那么就不需要分区器的作用,因为 partition 代表的就是所要发往的分区号。
码农架构
2021-02-08
1.1K0
Kafka 发送消息过程中拦截器的用途?
消息在通过 send() 方法发往 broker 的过程中,有可能需要经过拦截、序列化器 和 分区器 的一系列作用之后才能被真正地发往 broker。
码农架构
2021-02-08
7490
每秒处理10万条消息的高性能MQ,Kafka是怎么做到的?
MQ(消息中间件)是项目开发中经常用到的一种技术。它是分布式系统重要的组件,主要用来解决应用解耦、异步任务、流量削锋等业务场景。MQ有非常多的开源实现,包括RocketMq、RabitMq、ActiveMq、Kafka等。在这些开源实现的组件中,Kafka是最流行的消息中间件,它以高吞吐、低延迟、可扩展、数据持久化等特点而受到开发人员的喜欢。每秒可处理10万条消息,这个级别可以满足大多数业务场景的需求。那Kafka是如何做到如此大的吞吐?Java语言中我们该如何使用Kafka呢?本文就将详细讲解这些知识。
码农架构
2021-02-08
2.3K0
怎么理解Kafka消费者与消费组之间的关系?
与生产者对应的是消费者,应用程序可以通过 KafkaConsumer 来订阅主题,并从订阅的主题中拉取消息。不过在使用 KafkaConsumer 消费消息之前需要先了解消费者和消费组的概念,否则无法理解如何使用KafkaConsumer。
码农架构
2021-02-08
2.1K0
Kafka消费者提交消费位移时提交的是当前消费到的最新消息的 offset 还是 offset+1?
对于 Kafka 中的分区而言,它的每条消息都有唯一的 offset,用来表示消息在分区中对应的位置。对于消费者而言,它也有一个 offset 的概念,消费者使用 offset 来表示消费到分区中某个消息所在的位置。
码农架构
2021-02-08
8810
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档