源码解读
文章平均质量分 83
分析各类框架或jdk源码,从中汲取成为自己的养料。
知始行末
君子有所为有所不为,为者不违心,不为者不为过。
展开
-
图解Kafka高性能之谜(五)
简单架构设计:详细架构设计:原创 2023-10-28 21:54:44 · 744 阅读 · 0 评论 -
Kafka源码分析之Producer粘性分区算法(二)
为了提升kafka发送消息的速率,在对消息顺序没有特殊的要求情况下,应该尽量避免设置消息的key,这样可以提交发送消息的吞吐量。原创 2023-03-05 15:37:19 · 593 阅读 · 0 评论 -
基于lambda的mongodb查询插件
基于lambda表达式,面向对象的mongodb查询插件原创 2023-02-18 16:06:53 · 1310 阅读 · 0 评论 -
SpringSecurity自定义Filter的ignoring()失效问题源码分析
忽略SpringBoot启动流程中服务器是如何将Spring的Filter加载进来和过滤的流程。下图简要概括了Secutiry的Filter和SpringFilter的Bean的关系源码太多,流程太复杂繁琐,过了一些主要的代码和主干。遇到了问题发现没有人在源码上分析原因,花了一天时间简要的概括了一下。httpshttpshttpshttpshttpshttpshttpshttpshttpshttps。.............................................原创 2022-07-22 17:02:57 · 2029 阅读 · 0 评论 -
Spring扩展点在SpringCloud微服务组件中的应用(一)
概述总结了spring的常用扩展点的,大致可以分为两类:一是针对bean本身去扩展的;二是针对bean生命周期植入的扩展点扩展。思维导图根据上面的思维导图,结合我们常用的微服务组件源码,将在下面一一分析这些扩展点是如何运用的。以后,如果需要将自己的框架或者三方框架,跟sping进行整合,就可以根据实际使用场景,采用合适的扩展点来黏合到spring框架中去。针对Bean自身扩展 Bean扩展 ImportBeanDefinitionRegistrar我们在使用的feig.原创 2022-03-23 12:48:51 · 1065 阅读 · 0 评论 -
Spring Cloud之LB-Ribbon调用流程和源码分析(二)
接着上面的一篇关于Spring Cloud之Open Feign调用流程和源码分析,解析feign在rpc调用的时候lb的组成及底层工作流程。关键组件介绍ServerList:可以响应客户端的特定服务的服务器列表。 ServerListFilter:可以动态获得的具有所需特征的候选服务器列表的过滤器。 ServerListUpdater:用于执行动态服务器列表更新。 Rule:负载均衡策略,用于确定从服务器列表返回哪个服务器。 Ping:客户端用于快速检查服务器当时是否处于活动状态.原创 2021-07-18 17:04:00 · 911 阅读 · 2 评论 -
Spring Cloud之Open Feign调用流程和源码分析(一)
@EnableFeignClients 引入FeignClientsRegistrar类 实现了ImportBeanDefinitionRegistrar接口用过registerBeanDefinitions方法向spring容器中注入FeignClientSpecification类(FeignClient需要的重试策略,超时策略,日志等配置,如果某个服务没有设置,则读取默认的配置) 然后注册FeignClientFactoryBean,是一个包装了我们需要执行的rpc服务的请求的类、url、服.原创 2021-07-08 22:13:06 · 881 阅读 · 6 评论 -
ThreadLocal和内存泄漏问题
ThreadLocal原理简介ThreadLocal提供了线程本地变量,它可以保证访问到的变量属于当前线程,每个线程都保存有一个变量副本,每个线程的变量都不同。ThreadLocal相当于提供了一种线程隔离,将变量与线程相绑定。Api1.New Threadlocal();---创建Threadlocal2.set 设置当前线程绑定的局部变量3.get 获取当前线程绑定的局部变量4.remove()...原创 2021-04-11 22:02:41 · 2368 阅读 · 0 评论 -
Redis5源码分析之字符串结构sds(一)
简介nignx和redis都是高性能服务的典型代表,其线程模型都是异步网络I/O机制实现的。redis的性能可以达到每秒10+qps。reids的数据结构有:字符串结构sds、跳跃表skiplist、压缩列表ziplist、字典dict、快速列表quicklist、消息队列stream等。常用的算法:Hash常用算法times33、物理位置查找算法geohash、统计算法HyperLogLog等。sds1.redis中的字符串称为动态字符,可以存储字符串和整型数据(单个或多个cha.原创 2021-04-07 22:28:28 · 2595 阅读 · 0 评论