06 2020 档案
摘要:今天由于业务需求,需要在ubuntu上安装mysql,搞了接近一晚上才搞定,这里记录下安装过程; 安装很容易,度娘上有很多方法,不过启动mysql和远程访问mysql说的都不是很准确(确切的说是没有注明mysql的版本) 1.先查看ubuntu的版本 cat /etc/issue,可以看到我用的是2
阅读全文
摘要:max.poll.interval.ms参数用于指定consumer两次poll的最大时间间隔(默认5分钟),如果超过了该间隔consumer client会主动向coordinator发起LeaveGroup请求,触发rebalance;然后consumer重新发送JoinGroup请求 示例如下
阅读全文
摘要:前面说过了consumer心跳机制:consumer定期向coordinator发送心跳请求,以表明自己还在线;如果session.timeout.ms内未发送请求,coordinator认为其不可用,然后触发rebalance session.timeout.ms:coordinator感知con
阅读全文
摘要:auto.offset.reset用来指定consumer消费策略,有如下取值: 1、latest(分区有提交的offset,从提交的offset后一个offset开始消费;否则等待新生产的数据)【默认配置】 示例:topic3有两个分区、3个副本;其中topic3-0有五条数据,offset为0~
阅读全文
摘要:KafkaConsumer是非线程安全的,多线程共享一个KafkaConsumer实例,kafka会有如下异常:java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access
阅读全文
摘要:创建消费者 public static Consumer<String, String> createConsume2(String groupName) { Properties properties = new Properties(); properties.put(CommonClientC
阅读全文
摘要:1、消费者组 kafka提供的一种可扩展可容错消费机制,某个topic的分区数据只能被组内的一个消费者消费,注:当指定了自动提交(enable.auto.commit=true)时,必须显式的指定消费者组ID(group.id) 2、消费位置和offset管理 消费者需要记录消费了多少数据,即消费位
阅读全文
摘要:kafka号称能够达到每秒几十万级、甚至是百万级的并发量,而且我们也知道,kafka的数据是保存到磁盘的,那么kafka如何保证如此高的吞吐量(当然也和不同场景调优配置有关); 从两个角度来说: 数据写入角度(生产者角度) 写数据时采用了页面缓存技术和顺序写技术; 1、页面缓存技术 kafka将数据
阅读全文
摘要:前段时间实际项目中遇到了一个问题,特此整理下 配置信息 1.kafka集群采用经典部署方式,3节点 2.为了保证全局消息有序性,topic只有一个分区,三个副本 3.生产者和消费者均只有一个,均以主备微服务方式部署 4.消费者通过TCP方式将数据发送给其他服务,这里用对端代替 问题现象 对端收到的稳
阅读全文
摘要:本章要说的HW和LEO和ISR有关联,ISR之前总结过,这里不再说。 HW High Watermark(高水位),用于标识特定的offset,消费者只能拉取到HW之前的消息 LEO Log End Offset,某个分区要写入下一条消息的offset LSO Log Start Offset ,某
阅读全文
摘要:IOC控制反转 复杂的系统可以由多个对象相互协作和依赖来实现,并且对象的内部实现是透明的(并不代表用public修饰,可以通过反射,spring底层实现就用到了反射),对象与对象之间的依赖可以交由“第三方”管理,而对象与对象之间无实质的联系,这就是控制反转思想。为什么这种思想叫做控制反转呢? 未引入
阅读全文
摘要:前一篇总结了下生产者Java API,本篇参照源码总结下生产数据的具体流程,先上图: 1. Producer创建时,会创建一个Sender线程并设置为守护线程 2. 生产消息时,内部其实是异步流程;生产的消息先经过拦截器->序列化器->分区器,然后将消息缓存在缓冲区(该缓冲区也是在Producer创
阅读全文
摘要:事先说明,本文的所有实例均基于kafka2.5.0开发;依赖的jar包 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.5.0</version> <
阅读全文
摘要:前面提到了,kafka0.11.0版本引入的幂等性只能保证分区级别的at-exactly-once语义 如图,producer向三个分区分别生产10条数据,前两个生产成功,写第三个分区时,producer挂掉;producer重启后,重新向三个分区写入数据; 此时producer的PID变化,导致消
阅读全文