
kafka
文章平均质量分 92
Meiko丶
这个作者很懒,什么都没留下…
展开
-
Kafka如何做到消息不丢&消息不重复
三种消息语义及场景kafka如何做到消息不丢失?具体需要Producer端,Broker端,Consumer都做一些工作才能保证消息一定被消费,即,生产者不少生产消息; 服务端不丢失消息; 消费者也不能少消费消息。生产者不少生产消息使用带回调的发送消息的方法。如果消息没有发送成功,那么Producer会按照配置的重试规则进行重试,如果重试次数用光后,还是消息发送失败,那么kafka会将异常信息通过回调的形式带给我们,这时,我们可以将没有发送成功的消息进行持久化,做后续的补偿处理。转载 2021-11-30 14:24:14 · 1492 阅读 · 0 评论 -
kafka网络模型
Kafka基于高吞吐率和效率考虑,并没有使用第三方网络框架,而且自己基于java nio封装的,总体网络模型如下:Broker的内部处理流水线化,分为多个阶段来进行(SEDA),以提高吞吐量和性能,尽量避免Thead盲等待,以下为过程说明。Accept Thread负责与客户端建立连接链路,然后把Socket轮转交给Process ThreadProcess Thread负责接收请求和响应数据,Process Thread每次基于Selector事件循环,首先从Response Queue读.原创 2021-07-09 11:35:34 · 1258 阅读 · 0 评论 -
深入理解 Kafka 副本机制
一、Kafka集群Kafka 使用 Zookeeper 来维护集群成员 (brokers) 的信息。每个 broker 都有一个唯一标识broker.id,用于标识自己在集群中的身份,可以在配置文件server.properties中进行配置,或者由程序自动生成。下面是 Kafka brokers 集群自动创建的过程:每一个 broker 启动的时候,它会在 Zookeeper 的/brokers/ids路径下创建一个临时节点,并将自己的broker.id写入,从而将自身注册到集群;...转载 2021-07-09 11:23:11 · 588 阅读 · 0 评论 -
深入消费者
1 消费者参数配置对于一个消费者来说,他要做的事情只有一件,那就是使用poll()来拉取消息。至于他是从哪个分区拉取,则是靠消费者组来动态的调整这个消费者所消费的分区,又或者是由开发者来自定义。但无论如何,这个消费者都需要通过poll()来拉取消息。这也是这一节的内容:通过参数配置能够影响poll操作的哪些内容。首先需要确定一点,当消费者使用poll()拉取消息的时候,他只能拉到HW水位线及以下的消息。1.1 分区配置我们可以让消费者针对于某一个分区进行消费。为了实现这个目标转载 2021-07-09 10:57:59 · 188 阅读 · 0 评论 -
Kafka 为什么速度那么快
写入数据Kafka会把收到的消息都写入到硬盘中,它绝对不会丢失数据。为了优化写入速度Kafka采用了两个技术, 顺序写入 和 MMFile 。顺序写入磁盘读写的快慢取决于你怎么使用它,也就是顺序读写或者随机读写。在顺序读写的情况下,某些优化场景磁盘的读写速度可以和内存持平。因为硬盘是机械结构,每次读写都会寻址->写入,其中寻址是一个“机械动作”,它是最耗时的。所以硬盘最讨厌随机I/O,最喜欢顺序I/O。为了提高读写硬盘的速度,Kafka就是使用顺序I/O。而且Linux对于磁盘的原创 2021-07-09 10:50:21 · 277 阅读 · 1 评论 -
Kafka如何保证高可用
什么是高可用「高可用性」,指系统无间断地执行其功能的能力,代表系统的可用性程度Kafka从0.8版本开始提供了高可用机制,可保障一个或多个Broker宕机后,其他Broker能继续提供服务备份机制Kafka允许同一个Partition存在多个消息副本,每个Partition的副本通常由1个Leader及0个以上的Follower组成,生产者将消息直接发往对应Partition的Leader,Follower会周期地向Leader发送同步请求同一Partition的Replica不应存储在转载 2021-07-09 10:45:07 · 3323 阅读 · 0 评论 -
springboot kafka
Kafka 环境安装接下来,小哈为大家演示一下,在 Linux 系统中,采用最简单的单机安装方式, 因为本文着重点还是介绍 Spring Boot 2.x 快速集成整合 Kafka.下载 Kafka访问 Kafka 官网 kafka.apache.org/downloads,下载 tgz 包, 这里演示版本为最新的 2.3.0 版本。解压,进入目录下载下来过后,放置到指定位置,执行命令解压:tar -zxvf kafka_2.11-2.3.0.tgz 复制代码.原创 2021-07-08 21:02:04 · 142 阅读 · 1 评论 -
kafka补充
11.LEO、LSO、AR、ISR、HW 都表示什么含义?讲真,我不认为这是炫技的题目,特别是作为 SRE 来讲,对于一个开源软件的原理以及概念的理解,是非常重要的。LEO(Log End Offset): 日志末端位移值或末端偏移量,表示日志下一条待插入消息的位移值。举个例子,如果日志有 10 条消息,位移值从 0 开始,那么,第 10 条消息的位移值就是 9。此时,LEO = 10。 LSO(Log Stable Offset): 这是 Kafka 事务的概念。如果你没有使用到事务,那么这个值原创 2021-07-08 20:53:46 · 649 阅读 · 4 评论 -
kafka消息丢失问题
生产者丢失消息的情况生产者(Producer) 调用send方法发送消息之后,消息可能因为网络问题并没有发送过去。所以,我们不能默认在调用send方法发送消息之后消息消息发送成功了。为了确定消息是发送成功,我们要判断消息发送的结果。但是要注意的是 Kafka 生产者(Producer) 使用 send 方法发送消息实际上是异步的操作,我们可以通过 get()方法获取调用结果,但是这样也让它变为了同步操作,示例代码如下:详细代码见我的这篇文章:Kafka系列第三篇!10 分钟学会如何在 Spri原创 2021-07-08 20:38:43 · 1550 阅读 · 0 评论 -
kafka基础
什么是 KafkaKafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。Kafka 的基本术语消息:Kafka 中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。批次:为了提高效率, 消息会分批次写入 Kafka,批次就代指的是一组消息。主题:消息的种类称为 主题(Topic),可以说一个主题代表了一类消息。相当于是对消息进行分类。主题原创 2021-07-08 20:15:22 · 360 阅读 · 1 评论