自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 kafka分布式如何保证

众所周知kafka是集群模式,那么kafka是如何保证数据一致性,以及集群间和消费者是如何交互的呢? 首先先来了解几个名称: AR:分区中所有副本统称为AR(Assigned Replicas)。 ISR:所有与leader副本保持一定程度同步风副本(包括leader副本本身)组成ISR(IN-Sync Replicas),ISR集合是AR集合中的一个子集。 replica.lag.time.max.ms这个就是follower副本落后leader副本的时间间隔,默认30秒。只要follower副本每隔

2021-01-27 10:12:56 499

原创 kafka客户端执行流程和源码分析

先看下客户端的整体架构: 转存失败重新上传取消 整个生产者客户端由2个线程协调运行,就是主线程和sender线程。在主线程中由Kafka Producer创建消息,然后通过拦截器、序列化器和分区器的作用后,缓存到消息累加器(也称为消息收集器),Sender负责从消息累加器获取消息并将其发送到Kafka中。 消息累加器主要用来缓存消息以便于sender线程可以批量发送,进而减少网络传输的资源消耗以提升性能。缓存大小是配置的,默认为32MB,如果生产速度过快,被阻塞最多60秒(配置的),就会抛异常。 .

2021-01-26 18:32:54 510

原创 Kafka的具体设计

消息中间件特点 解耦 异步 削峰 消息队列通信模式 1.点对点模式 2.发布订阅模式 kafka 基本概念 从图上可以看到可以分四个部分: Producer:消息生产者,消息入口。 kafka cluster:kafka集群。 broker:broker是kafka实例,每个服务器上可以有一个或者多个broker。 topic:消息的主题,kafka的数据就是保存在topic。每个broker上都可以创建多个topic。 partition:topic的分区,每个topic可以有多个分区,

2020-12-30 15:54:41 130 1

原创 Spring 类型转化

今天有个比较好玩的问题记录下。首先说下问题: 在 Spring Data Redis 官方文档中,可以看到这样一个常规用法。 <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"/> <property na

2020-10-16 18:45:47 212

原创 String hashcode 源码分析

public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i < value.length; i++) { h = 31 * h + val[i]; } hash = h; } return h; } .

2020-07-29 16:32:01 218

原创 Semaphore 源码分析

Semaphore 源码分析 其实Semaphore源码上的注释就说的比较清楚作用是如何的,下面是从源码翻译过来的解释: 计数信号灯。从概念上讲,信号量维护一组许可证。如果需要,acquire方法就是直到获得许可才会继续执行(阻塞)。release()方法会添加一个许可证,或者是释放acquire占据的许可。但是,其实没有实际存在许可证这个实体对象;simaphore只是记录可用的数量并相应地采取行动。 Semaphore通常用于限制线程的数量,而不能访问某些(物理或逻辑)资源。例如,以下是一个使用信号量控

2020-07-29 16:30:21 106

原创 CountDownLatch 源码讲解

CountDownLatch 源码讲解 老规矩,先翻译源码。 CountDownLatch 是一种同步辅助工具,允许一个或多个线程等待其他线程中正在执行的一组操作完成。 CountDownLatch是用给定的count参数初始化实例。 await方法会一直阻塞到当前计数为零,当调用countDown方法会释放所有等待的线程,await方法的任何后续调用都将立即返回。这是一种一次性现象——无法重置计数。如果需要重置计数的版本,请考虑使用CyclicBarrier类(这个类下次讲解)。 CountDownLat

2020-07-29 16:19:45 169 1

FAT32下文件删除的数据恢复思路与方法

FAT32下文件删除的数据恢复思路与方法,用于无意中删除数据,找回文件内容的方案和方法思路,具体流程看压缩文档

2020-10-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除