自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小大虽差,各任其性,苟当其分,逍遥一也。

  • 博客(13)
  • 收藏
  • 关注

原创 【leetcode】合并 k 个有序链表,我给了面试官这 5 种解法

开胃菜在进入本节的正题之前,我们先来看一道开胃菜。题目 21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解法 1思路直接两个列表合并,排序,然后重新构建一个新的链表。java 实现public ListNode mergeTwoLists(ListNode l1, List.

2020-06-24 00:24:29 610

原创 【分布式】load balance 04-java 从零手写实现负载均衡

负载均衡系列专题01-负载均衡基础知识02-一致性 hash 原理03-一致性哈希算法 java 实现04-负载均衡算法 java 实现本节我们来看一下如何实现一负载均衡框架。源码核心接口定义public interface ILoadBalance { /** * 选择下一个节点 * * 返回下标 * @param context 上下文 * @return 结果 * @since 0.0.1 */ I

2020-06-20 10:50:22 10619

原创 【分布式】load balance 03-一致性哈希算法 java 实现

负载均衡系列专题01-负载均衡基础知识02-一致性 hash 原理03-一致性哈希算法 java 实现04-负载均衡算法 java 实现本节我们来看一下如何实现一个一致性 hash 框架。源码普通 hash我们首先定义一下 hash 接口,以及最简单的 jdk 实现:IHashpublic interface IHash { /** * 计算 hash 值 * @param text 文本 * @return 结果 * @since

2020-06-20 10:49:33 10589

原创 【分布式】load balance 02-consistent hash algorithm 一致性哈希算法原理详解

负载均衡系列专题01-负载均衡基础知识02-一致性 hash 原理03-一致性哈希算法 java 实现04-负载均衡算法 java 实现概念一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中K是关键字的数量, n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。有什么用现在想来,很多分布式中间件,在增删节点的时候都需要进行 re-balance。借助一致性 hash,感觉可以避免

2020-06-20 10:49:02 10787

原创 【分布式】load balance 01-负载均衡基础知识

负载均衡系列专题01-负载均衡基础知识02-一致性 hash 原理03-一致性哈希算法 java 实现04-负载均衡算法 java 实现负载均衡负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。传统架构在这里用户是直连到 web 服务器,如果这个服务器宕机了,那么用户自然也就没办法访问了。另外,如果同时有很多用户试图访问服务器,超过了其能处理的极限,就会出现加载速度缓慢或根本无法连接的情况。引入负载均衡而通过在

2020-06-20 10:47:36 10778

原创 java SPI 07-自动生成 SPI 配置文件实现方式

系列目录spi 01-spi 是什么?入门使用spi 02-spi 的实战解决 slf4j 包冲突问题spi 03-spi jdk 实现源码解析spi 04-spi dubbo 实现源码解析spi 05-dubbo adaptive extension 自适应拓展spi 06-自己从零手写实现 SPI 框架spi 07-自动生成 SPI 配置文件实现方式回顾上一节我们自己动手实现了一个简单版本的 SPI。这一节我们一起来实现一个类似于 google auto 的工具。使用演示类实现

2020-06-18 22:54:22 11243

原创 java SPI 06-自己从零手写实现 SPI 框架

系列目录spi 01-spi 是什么?入门使用spi 02-spi 的实战解决 slf4j 包冲突问题spi 03-spi jdk 实现源码解析spi 04-spi dubbo 实现源码解析spi 05-dubbo adaptive extension 自适应拓展spi 06-自己从零手写实现 SPI 框架spi 07-自动生成 SPI 配置文件实现方式回顾学习了 java 的 SPI 和 dubbo 的 SPI 实现之后,希望实现一个属于自己的 SPI 框架。希望具有如下特性:(1)

2020-06-18 22:53:48 11106

原创 java SPI 05-dubbo adaptive extension 自适应拓展

系列目录spi 01-spi 是什么?入门使用spi 02-spi 的实战解决 slf4j 包冲突问题spi 03-spi jdk 实现源码解析spi 04-spi dubbo 实现源码解析spi 05-dubbo adaptive extension 自适应拓展spi 06-自己从零手写实现 SPI 框架spi 07-自动生成 SPI 配置文件实现方式dubbo 自适应拓展原理在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、Load

2020-06-18 22:53:16 10860

原创 java SPI 04-spi dubbo 实现源码解析

系列目录spi 01-spi 是什么?入门使用spi 02-spi 的实战解决 slf4j 包冲突问题spi 03-spi jdk 实现源码解析spi 04-spi dubbo 实现源码解析spi 05-dubbo adaptive extension 自适应拓展spi 06-自己从零手写实现 SPI 框架spi 07-自动生成 SPI 配置文件实现方式dubbo spi而Dubbo中最核心的一点就是SPI和自适应扩展,Dubbo的高扩展性以及其它功能都是在这个基础上实现的,理解掌握其原理

2020-06-18 22:52:42 10808

原创 java SPI 03-ServiceLoader jdk 源码解析

系列目录spi 01-spi 是什么?入门使用spi 02-spi 的实战解决 slf4j 包冲突问题spi 03-spi jdk 实现源码解析spi 04-spi dubbo 实现源码解析spi 05-dubbo adaptive extension 自适应拓展spi 06-自己从零手写实现 SPI 框架spi 07-自动生成 SPI 配置文件实现方式java SPI 加载流程1 应用程序调用ServiceLoader.load方法ServiceLoader.load方法内先创建一个新

2020-06-18 22:52:10 10787

原创 java SPI 02-通过 spi 解决 slf4j 版本冲突

系列目录spi 01-spi 是什么?入门使用spi 02-spi 的实战解决 slf4j 包冲突问题spi 03-spi jdk 实现源码解析spi 04-spi dubbo 实现源码解析spi 05-dubbo adaptive extension 自适应拓展spi 06-自己从零手写实现 SPI 框架spi 07-自动生成 SPI 配置文件实现方式实际应用slf4j 版本冲突slf4j 和较低版本的 lo4j 的日志接口冲突。使用高版本,低版本的 log4j 接口和 高版本的 s

2020-06-18 22:51:27 11276

原创 java SPI 01-SPI 是什么?spi 使用入门教程 ServiceLoader 使用简介

系列目录spi 01-spi 是什么?入门使用spi 02-spi 的实战解决 slf4j 包冲突问题spi 03-spi jdk 实现源码解析spi 04-spi dubbo 实现源码解析spi 05-dubbo adaptive extension 自适应拓展spi 06-自己从零手写实现 SPI 框架spi 07-自动生成 SPI 配置文件实现方式问题引入以前一直想指定一套标准,让别人按照这个标准来实现,并编写好对应的容器。然后我在代码中动态获取这些实现,让代码运行起来。困难如

2020-06-18 22:50:51 10918 2

原创 lombok-ex 编译时注解框架,性能完爆 AOP

lombok-exlombok-ex 是一款类似于 lombok 的编译时注解框架。主要补充一些 lombok 没有实现,且自己会用到的常见工具。编译时注解性能无任何损失,一个注解搞定一切,无三方依赖。创作目的补充 lombok 缺失的注解,便于日常开发使用。lombok 的源码基本不可读,应该是加密处理了。为其他注解相关框架提升性能提供基础,后期考虑替换为编译时注解。特性@Serial 序列化@Util 工具类@ToString toString@S

2020-06-05 21:43:12 12223

空空如也

空空如也

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

TA关注的人

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