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

2020-06-20
阅读 6 分钟
2k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 概念 一致哈希是一种特殊的哈希算法。 在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中K是关键字的数量, n是槽位数量。 然而在传统的哈希表中,添加或删除...

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

2020-06-20
阅读 7 分钟
1.3k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 负载均衡 负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 传统架构 在这里用户是直连到 web 服务器,如果这个服务...

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

2020-06-18
阅读 10 分钟
1.2k
系列目录 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和自适应扩展...

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

2020-06-18
阅读 7 分钟
2.1k
系列目录 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 实现之后,...

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

2020-06-05
阅读 3 分钟
7.5k
lombok-ex lombok-ex 是一款类似于 lombok 的编译时注解框架。 主要补充一些 lombok 没有实现,且自己会用到的常见工具。 编译时注解性能无任何损失,一个注解搞定一切,无三方依赖。 创作目的 补充 lombok 缺失的注解,便于日常开发使用。 lombok 的源码基本不可读,应该是加密处理了。 为其他注解相关框架提升性能提供...

你抢了那么多红包,知道它实现的原理吗?

2020-05-25
阅读 5 分钟
3.3k
抢红包随着电子支付的流行,目前在微信钉钉等社交软件都非常的受欢迎。 发红包金额一般不需要很大,就可以达到提升大家积极性的方式。抢红包其实更多是一种消遣,不劳而获的快乐,快乐到无法想象。 红包作为我们的传统文化流传至今,那么如果用程序该怎么实现呢? 大概是自己 5 年前实现过一次,时间太久源码都没了,今...

数据分析——每个人都应该掌握的能力

2020-05-24
阅读 2 分钟
1.6k
前不久有人让我帮其整理一些数据,用来做产品的推广。 感觉这种思维非常重要,我们现在处在一个遍地都是信息的社会,如果能让这些信息为我们所用,做很多事情都必定是大有裨益。 什么时候会用到 数据分析的能力实际非常重要。 找工作,买房子,租房子,做产品推销,甚至炒股,金融,方方面面其实都涉及到数据分析。 我们...

520 又是一年情人劫

2020-05-17
阅读 2 分钟
1.5k
​又到了一年几度的情人节。身为单身狗的你是否一次次受到无情的伤害? 拥有伴侣的你是否又在为人节该送什么礼物而苦恼? 这一切的一切在看完本篇之后你都不会明白,因为本篇也没有答案。 左永邦说过,我相信爱情,只是不相信爱情会降临到我的头上。 我们厌倦了生活的乏味与苦难,所以总是向往着爱情的美好。不过造化弄人...

我二十多岁了,至今依然一事无成

2020-05-16
阅读 2 分钟
1.4k
​我二十多了岁,至今依然一事无成 逛知乎的时候看到下面一个帖子,看到提问者的无声呐喊,不觉得有些感慨。 研三了,延毕了。当了一辈子的乖乖女,终于还是闹出了笑话。你不知道我每天活在怎样的地狱里,怎样才能解脱? 提问者问道,25 岁还一无所有的我该何去何从?我还会幸福起来吗? 其实当别人问出一个问题时,都是...

分布式 id 的四种写法,你会吗?

2020-05-14
阅读 1 分钟
1.4k
引言 我们在生活中,id 与我们的生活实际上是形影不离的。 身份证号,QQ 号,手机号,银行卡号,学生时代的学号,甚至是躺在你硬盘里的番号。 这些 id 标识是如此的重要,乃至每一个后台程序员都要去思考这个问题—— id 的有几种写法?都有哪些利弊? 本文就带你深入浅出学习几种常见的 id 的生成策略。 入门学习 由于篇...

java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍

2020-01-18
阅读 2 分钟
7.8k
pinyin pinyin 是 java 实现的高性能中文拼音转换工具。 变更日志 创作目的 想为 java 设计一款便捷易用的拼音工具。 如何为 java 设计一款高性能的拼音转换工具 pinyin4j 特性 性能是 pinyin4j 的两倍 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标注方式 支持中文分词 快速开始 准备 jdk 1.7+ maven 引入...

结巴分词 java 高性能实现,优雅易用的 api 设计,性能优于 huaban jieba 分词

2020-01-14
阅读 5 分钟
7.6k
Segment Segment 是基于结巴分词词库实现的更加灵活,高性能的 java 分词实现。 变更日志 创作目的 分词是做 NLP 相关工作,非常基础的一项功能。 jieba-analysis 作为一款非常受欢迎的分词实现,个人实现的 opencc4j 之前一直使用其作为分词。 但是随着对分词的了解,发现结巴分词对于一些配置上不够灵活。 (1)有很多...

java 实现敏感词(sensitive word)工具详解使用说明

2020-01-09
阅读 2 分钟
6.2k
sensitive-word 平时工作中,只要涉及到用户可以自由发言(博客、文档、论坛),就要考虑内容的敏感性处理。 sensitive-word 基于 DFA 算法实现的高性能敏感词工具。工具使用 java 实现,帮助我们解决常见的问题。 特性 6W+ 词库,且不断优化更新 基于 DFA 算法,性能较好 基于 fluent-api 实现,使用优雅简洁 支持敏感...

java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)

2020-01-06
阅读 2 分钟
3.9k
IMAP,即Internet Message Access Protocol(互联网邮件访问协议),您可以通过这种协议从邮件服务器上获取邮件的信息、下载邮件等。

一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍

2019-12-28
阅读 2 分钟
40.6k
gen-test-plugin 我们日常编写代码的过程中,经常需要为代码编写测试案例。 随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标。 本框架可以一键生成所有代码对应的 junit 测试案例,为你的人生节约宝贵的时间。 特性 支持生成 junit4/junit5 支持 jdk7 支持自定义生成模板 更新记...

基于 asm 实现比 spring BeanUtils 性能更好的属性拷贝框架

2019-12-17
阅读 3 分钟
38.5k
Bean-Mapping 日常开发中经常需要将一个对象的属性,赋值到另一个对象中。 常见的工具有很多,但都多少不够简洁,要么不够强大。 我们经常使用的 Spring BeanUtils 性能较好,但是特性不足。 Bean-Mapping 提供了很多丰富的特性,便于日常开发。 如果你追求更加极致的性能,可以考虑使用 asm 实现的模块,该实现性能优于...

java 反射借助 asm 获取参数名称最优雅简单的方式

2019-12-13
阅读 2 分钟
38.6k
背景说明 最近写反射相关的代码,想获取对应的参数名称,却发现没有特别好的方式。 jdk7 及其以前,是无法通过反射获取参数名称的。 jdk8 可以获取,但是要求指定 -parameter 启动参数,限制较多。 期间尝试过类似于 Mybatis 使用 @Param 的方式,但是感觉不够优雅,后来发现了下面的这个工具。 asm-tool 是基于 asm 构...

xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写xml

2019-12-03
阅读 2 分钟
37.6k
xml xml 是 java 实现的 xml 框架。 希望以最优雅的方式进行 xml 和 java 之间的转换处理,一行代码搞定一切。 特点 对象的和 xml 的互相映射 支持注解 @Alias 指定别名 支持注解 @Ignore 指定忽略的字段 变更日志 CHANGE_LOG 快速开始 准备 jdk 1.7+ maven 3.x+ maven 引入 {代码...} 转换为 xml {代码...} User 参见类...

从零开始手写 spring ioc 框架,深入学习 spring 源码

2019-12-01
阅读 6 分钟
42k
IoC Ioc 是一款 spring ioc 核心功能简化实现版本,便于学习和理解原理。 创作目的 使用 spring 很长时间,对于 spring 使用非常频繁,实际上对于源码一直没有静下心来学习过。 但是 spring 源码存在一个问题,那就是过于抽象,导致学习起来成本上升。 所以本项目由渐入深,只实现 spring 的核心功能,便于自己和他人学...

java property 配置文件管理工具框架,避免写入 property 乱序

2019-11-20
阅读 4 分钟
38.1k
property property 是 java 实现的 property 框架。 特点 优雅地进行属性文件的读取和更新 写入属性文件后属性不乱序 灵活定义编码信息 使用 OO 的方式操作 property 文件 支持多级对象引用 变更日志 ChangeLog 快速开始 环境依赖 Maven 3.x Jdk 1.7+ Maven 引入依赖 {代码...} 入门案例 读取属性 {代码...} read.proper...

从零开始手写 dubbo rpc 框架

2019-11-01
阅读 2 分钟
38.6k
rpc rpc 是基于 netty 实现的 java rpc 框架,类似于 dubbo。 主要用于个人学习,由渐入深,理解 rpc 的底层实现原理。 前言 工作至今,接触 rpc 框架已经有很长时间。 但是对于其原理一直只是知道个大概,从来没有深入学习过。 以前一直想写,但由于各种原因被耽搁。 技术准备 Java 并发实战学习 TCP/IP 协议学习笔记 N...

java bean 属性验证框架 valid

2019-10-13
阅读 17 分钟
38.4k
项目介绍 java 开发中,参数校验是非常常见的需求。 但是 hibernate-validator 在使用过程中,依然会存在一些问题。 特性 支持 fluent-validation 支持 jsr-303 注解 支持 i18n 支持用户自定义策略 支持用户自定义注解 开源地址 valid 创作目的 hibernate-validator 无法满足的场景 如今 java 最流行的 hibernate-valida...

java 编译时注解框架 lombok-ex

2019-10-03
阅读 2 分钟
37.6k
lombok-ex lombok-ex 是一款类似于 lombok 的编译时注解框架。 编译时注,拥有运行时注解的便利性,和无任何损失的性能。 主要补充一些 lombok 没有实现,且自己会用到的常见工具。 创作目的 补充 lombok 缺失的注解,便于日常开发使用。 lombok 的源码基本不可读,应该是加密处理了。 为其他注解相关框架提升性能提供基...

java压缩归档算法开源框架工具 compress

2019-09-28
阅读 2 分钟
39k
compress The compress algorithm tool.(常见压缩算法工具类) 创作背景 压缩是很常见的一个需求,但是使用 apache 的工具类进行压缩,需要自己处理很多事情。 比如文件是否存在,不存在则需要创建,还要循环处理各种信息,这一点也不优雅。 于是,就基于 apache common-compress 进行封装,便于后期使用。 特性 支持常见...

java 导出 excel 最佳实践,大文件 excel 避免OOM(内存溢出) 框架-02-API 优化

2019-09-20
阅读 3 分钟
38.4k
项目简介 IExcel 用于优雅地读取和写入 excel。 避免大 excel 出现 oom,简约而不简单。。 特性 OO 的方式操作 excel,编程更加方便优雅。 sax 模式读取,SXSS 模式写入。避免 excel 大文件 OOM。 基于注解,编程更加灵活。 写入可以基于对象列表,也可以基于 Map,实际使用更加方便。 设计简单,注释完整。方便大家学习...

从零手动实现 java json 序列化框架

2019-09-12
阅读 4 分钟
38.1k
json json 是 java 实现的序列化 json 框架。 特性 8 大基本类型支持 基本类型/对象数组/集合/枚举/对象 支持 极简的 API 后续特性 @Field 注解的支持 反序列化对象的完整性支持,目前只支持基础的反序列化。 为何创作 解决 fastJson 中的不足 FastJSON 在序列化本身存在一定限制。当对象中有集合,集合中还是对象时,结...

spring retry, guava retrying 的整合-sisyphus java 重试框架

2019-06-20
阅读 9 分钟
38.4k
Sisyphus 支持过程式编程和注解编程的 java 重试框架。 特性 支持 fluent 过程式编程 基于字节码的代理重试 基于注解的重试,允许自定义注解 无缝接入 spring 接口与注解的统一 解决 spring-retry 与 guava-retrying 中的不足之处 设计目的 综合了 spring-retry 和 gauva-retrying 的优势。 调整一些特性,使其更利于实...

基于 java 注解的 csv 读写框架更加简单灵活

2019-06-20
阅读 10 分钟
39.2k
CSV 基于 java 注解的 csv 读写框架。 相关框架 Apache commons-csv super-csv 简单看了下,这两个框架提供的特性都非常的基础。 创作原由 以前觉得 csv 文件的读写非常简单,就懒得封装。 最近一个月写了两次 csv 文件相关的东西,发现要处理的细节还是有的,还浪费比较多的时间。 比如: UTF-8 中文编码使用 excel 打...

CSV-03- csv 读写框架支持数组、Map、Collection 等常见集合

2019-06-17
阅读 2 分钟
38.3k
集合类 有时候对象中会包含数组、Map、Collection 等常见集合。 为了存储的便利性,默认提供集合的相关支持。 特性和普通字段保持一致,如果指定注解转换,则以注解为准。 使用示例 UserCollection.java 用于演示集合的对象 {代码...} 存储 待存储对象的构建 {代码...} 执行存储 {代码...} 存储效果 {代码...} 读取 测试...

基于 java 注解的 csv 文件读写框架

2019-06-03
阅读 5 分钟
38.2k
csv 基于 java 注解生成加签验签 csv。 开源地址: github csv) 创作原由 以前觉得 csv 文件的多写非常简单,就懒得封装。 最近一个月写了两次 csv 文件相关的东西,发现要处理的细节还是有的,还浪费比较多的时间。 比如: UTF-8 中文编码使用 excel 打开乱码,因为缺少 BOM 头。 不同类型字段转化为字符串,顺序的指定...