自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Vertx入门到实战—实现钉钉机器人内网穿透代理

Vertx入门到实战—实现钉钉机器人内网穿透代理 ...

2020-04-12 16:39:16 994

原创 钉钉机器人回调内网穿透代理--使用篇

钉钉机器人回调内网穿透代理--使用篇 Posted...

2020-03-25 23:26:21 1542

原创 周末补习(一)trie 树

周末补习(一)trie 树 Posted on...

2020-03-07 18:12:03 154

原创 那些有趣的代码(三)--勤俭持家的 ArrayList

那些有趣的代码(三)--勤俭持家的 ArrayList ...

2019-12-05 15:11:02 233

原创 那些有趣的代码(二)--偏不听父母话的 Tomcat 类加载器

那些有趣的代码(二)--偏不听父母话的 Tomcat 类加载器 ...

2019-10-27 23:32:30 216

原创 那些有趣的代码(一)--有点萌的 Tomcat 的线程池

那些有趣的代码(一)--有点萌的 Tomcat 的线程池 ...

2019-10-15 00:39:17 116

原创 从需求第三定律说起--为什么知乎的回答质量下降了

从需求第三定律说起--为什么知乎的回答质量下降了 ...

2019-08-13 22:57:41 347

原创 如何利用 Spring Hibernate 高级特性设计实现一个权限系统

如何利用 Spring Hibernate 高级特性设计实现一个权限系统 ...

2019-05-11 21:23:41 305

原创 居然有人能忘记吃饭?写个微信机器人提醒他

居然有人能忘记吃饭?写个微信机器人提醒他 Post...

2019-05-07 23:56:33 276

原创 我的2018年总结

2018年结束了,这一年成长是的一年。目标回顾:2017年底给自己定了几个目标:买房,希望新的一年在北京站稳脚跟。(1/1)晋级,向T6进发。(入职新公司,给了资深 title,1/1)学习,新的一年着重应该聚焦两个相关点吧,一个是自己的老本行,更加深入的研究分布式系统。还有就是重启AI相关的学习。(确实研究了不少分布式的知识,AI 还是没有开...

2019-01-01 12:07:37 213

原创 从 LongAdder 中窥见并发组件的设计思路

最近在看阿里的 Sentinel 的源码的时候。发现使用了一个类 LongAdder 来在并发环境中计数。这个时候就提出了疑问,JDK 中已经有 AtomicLong 了,为啥还要使用 LongAdder ? AtomicLong 已经是基于 CAS 的无锁结构,已经有很好的并发表现了,为啥还要用 LongAdder ?于是赶快找来源码一探究竟。Atomi...

2018-11-27 20:42:20 120

原创 徒手撸框架--实现 RPC 远程调用

微服务已经是每个互联网开发者必须掌握的一项技术。而 RPC 框架,是构成微服务最重要的组成部分之一。趁最近有时间。又看了看 dubbo 的源码。dubbo 为了做到灵活和解耦,使用了大量的设计模式和 SPI机制,要看懂 dubbo 的代码也不太容易。按照《徒手撸框架》系列文章的套路,我还是会极简的实现一个 RPC 框架。帮助大家理解 RPC 框架的原理。广义...

2018-09-26 18:18:21 256

原创 我的写作工具链

写作是技术输出的重要手段。自己也写了一年多的文章,累计也超过五万多字。今天就想谈谈自己对于写作的一些看法以及写作时使用到的工具。工欲善其事必先利其器。输入能做到持续的输出文字,首先需要自己有所积累的同时不断的输入新的内容。要构建自己的知识系统,首先要考虑的是自己知识系统的输入是什么?我想我的知识输入主要来自于三个方面:泛读书籍当我拿到一本书的时候...

2018-08-17 14:31:00 127

原创 Java 渲染 docx 文件,并生成 pdf 加水印

最近做了一个比较有意思的需求,实现的比较有意思。需求:用户上传一个 docx 文件,文档中有占位符若干,识别为文档模板。用户在前端可以将标签拖拽到模板上,替代占位符。后端根据标签,获取标签内容,生成 pdf 文档并打上水印。需求实现的难点:模板文件来自业务方,财务,执行等角色,不可能使用类似 (freemark、velocity、Thymeleaf...

2018-08-15 21:00:38 498

原创 撸码的福音--变量名生成器的实现

最近换工作以后,结结实实的写了几个月的业务。需求完结以后,就找找自己喜欢的东西写写,换个口味。撸码最难的就是给变量取名字了。所以就写一个变量生成器吧。演示如下:实现思路:使用了 Mac 上最出名的效率工具 Alfred。利用 Alfred 调用本地的 python 脚本,利用 http 模块,请求远程的 API 接口。远程 API 获取查询的字符后,首...

2018-07-09 11:26:04 675

原创 Raft 协议学习笔记

好久没有更新博客了,最近研究了Raft 协议,谈谈自己对 Raft 协议的理解。希望这篇文章能够帮助大家理解 Raft 论文。Raft 是什么Raft 是一种分布式系统的一致性算法。在分布式系统中,我们需要让一组机器作为一个整体向外界提供服务。由于在实际的条件下,我们认为每台机器都是不100%可靠的,随时都可能发生宕机。每台机器之间的通信也不是可靠的,可能发...

2018-06-04 21:40:31 181

原创 dubbo 源码学习(一)开篇

今天开始将开启 dubbo 的源码研究。dubbo 是什么?dubbo 是阿里巴巴开发的一个基于 java 的开源的 RPC 框架。所谓 RPC 指的的是 Remote Procedure Call Protocol 远程过程调用协议。阅读代码前的准备下载代码:1git clone https://github.com/apache/incuba...

2018-04-01 16:51:26 94

原创 Redis 命令的执行过程

原文地址:https://www.xilidou.com/2018/03/30/redis-recommend/之前写了一系列文章,已经很深入的探讨了 Redis 的数据结构,数据库的实现,key的过期策略以及 Redis 是怎么处理事件的。所以距离 Redis 的单机实现只差最后一步了,就是 Redis 是怎么处理 client 发来的命令并返回结果的,所以我...

2018-03-30 12:45:46 105

原创 Redis 中的事件驱动模型

原文地址:https://www.xilidou.com/2018/03/22/redis-event/Redis 是一个事件驱动的内存数据库,服务器需要处理两种类型的事件。文件事件时间事件下面就会介绍这两种事件的实现原理。文件事件Redis 服务器通过 socket 实现与客户端(或其他redis服务器)的交互,文件事件就是服务器对 socke...

2018-03-22 22:48:03 140

原创 Redis 数据库、键过期的实现

Redis 数据库、键过期的实现 Posted o...

2018-03-20 17:26:08 91

原创 Redis 的基础数据结构(三)对象

原文地址:https://xilidou.com/2018/03/15/redis-object/前两篇文章介绍了 Redis 的基本数据结构动态字符串,链表,字典,跳跃表,压缩链表,整数集合,但是使用过 Redis 的同学会发现,平时根本没有使用过这些数据结构。 平时使用的数据结构,包括字符串,列表,哈希,集合,还有有序集合。 其实 Redis 的实现是将底...

2018-03-15 15:25:35 77

原创 Redis 的基础数据结构(二) 整数集合、跳跃表、压缩列表

原文地址:https://www.xilidou.com/2018/03/13/redis-data2/上篇文章写了 Redis 基础数据结构的可变字符串、链表、字典。大家可以点击链接查看。今天我们继续研究 Redis 的基础数据结构。整数集合跳跃表压缩列表整数集合当一个集合只包含整数,且这个集合的元素不多的时候,Redis 就会使用整数集合 i...

2018-03-13 22:14:00 113

原创 Redis 的基础数据结构(一) 可变字符串、链表、字典

原文地址:https://www.xilidou.com/2018/03/12/redis-data/这周开始学习 Redis,看看Redis是怎么实现的。所以会写一系列关于 Redis的文章。这篇文章关于 Redis 的基础数据。阅读这篇文章你可以了解:动态字符串(SDS)链表字典三个数据结构 Redis 是怎么实现的。SDSSDS (Sim...

2018-03-12 12:46:44 121

原创 线程池 execute() 的工作逻辑

原文地址:https://www.xilidou.com/2018/02/09/thread-corepoolsize/最近在看《Java并发编程的艺术》回顾线程池的原理和参数的时候发现一个问题,如果 corePoolSize = 0 且 阻塞队列是无界的。线程池将如何工作?我们先回顾一下书里面描述线程池execute()工作的逻辑:如果当前运行的线程,少...

2018-02-09 23:42:27 342

原创 JAVA 中的 CAS

原文地址:https://www.xilidou.com/2018/02/01/java-cas/CAS 是现代操作系统,解决并发问题的一个重要手段,最近在看 eureka 的源码的时候。遇到了很多 CAS 的操作。今天就系统的回顾一下 Java 中的CAS。阅读这篇文章你将会了解到:什么是 CASCAS 实现原理是什么?CAS 在现实中的应用自旋锁...

2018-02-01 13:56:06 85

原创 徒手撸框架--高并发环境下的请求合并

原文地址:https://www.xilidou.com/2018/01/22/merge-request/在高并发系统中,我们经常遇到这样的需求:系统产生大量的请求,但是这些请求实时性要求不高。我们就可以将这些请求合并,达到一定数量我们统一提交。最大化的利用系统性IO,提升系统的吞吐性能。所以请求合并框架需要考虑以下两个需求:当请求收集到一定数量时提交数...

2018-01-22 19:10:45 138

原创 徒手撸框架--实现Aop

原文地址:犀利豆的博客上一讲我们讲解了Spring 的 IoC 实现。大家可以去我的博客查看点击链接,这一讲我们继续说说 Spring 的另外一个重要特性 AOP。之前在看过的大部分教程,对于Spring Aop的实现讲解的都不太透彻,大部分文章介绍了Spring Aop的底层技术使用了动态代理,至于Spring Aop的具体实现都语焉不详。这类文章看以后以后,...

2018-01-13 10:12:48 159

原创 徒手撸框架--实现IoC

原文地址:https://www.xilidou.com/2018/01/08/spring-ioc/Spring 作为 J2ee 开发事实上的标准,是每个Java开发人员都需要了解的框架。但是Spring 的 IoC 和 Aop 的特性,对于初级的Java开发人员来说还是比较难于理解的。所以我就想写一系列的文章给大家讲解这些特性。从而能够进一步深入了解 Spr...

2018-01-08 19:16:52 154

原创 2017个人总结

2017年结束了总的来说2017年是充实的一年,也是在北京从生存逐渐向生活靠拢的一年。 工作在58从T4晋级到了T5,工资也涨了一点。负责的业务也从英才的APP到整个英才的C端,最后负责了新的58速聘业务。从一个项目的单纯的执行者,到某个模块的的架构者,再到现在变成了某个业务的架构者。虽然现在项目的主要关键点还需要与架构师讨论。但是对于如何设计一个完整的业...

2017-12-26 12:07:37 175

原创 最近遇到的几个问题集合

最近遇到的几个问题集合 Posted on ...

2017-11-28 17:22:30 108

原创 Redis RedLock 完美的分布式锁么?

Redis RedLock 完美的分布式锁么? P...

2017-10-29 16:21:09 198 1

原创 JAVA 8入门(二)流

JAVA 8入门(二)流 Posted on ...

2017-10-24 19:15:04 119

原创 JAVA 8入门(一)Lambda表达式

JAVA 8入门(一)Lambda表达式 Post...

2017-10-24 19:09:08 102

原创 有道 Alfred Workflow 威力加强版

有道 Alfred Workflow 威力加强版 ...

2017-10-24 19:06:21 403

原创 Kafka实现原理笔记

Kafka实现原理笔记 Posted on ...

2017-10-24 19:04:15 120

原创 《交易系统:更新与跨越》读后笔记

《交易系统:更新与跨越》读后笔记 Posted o...

2017-10-24 18:51:03 311

原创 Netty-Apns接入实现

极光推送免费版每分钟600次的请求限制实在是把我恶心坏了,考虑到现在我们 Android 的推送已经全量接入了小米,所以接下来就是要把 iOS 的推送直接接入 APNS 这样就可以彻底摆脱极光的推送。不再受这个600次/分钟的限制了。APNS使用 HTTP2 协议进行通信所以自然就想到了使用Netty作为网络框架,进行开发。下面逐个给大家介绍使用 Netty 接入...

2017-10-24 00:00:39 179

原创 Future研究

Future是什么?最近写了一些关于netty的相关代码,发现类似netty 的这种异步框架大量的使用一个Future的类。利用这个future类可以实现,代码的异步调用,程序调用耗时的网络或者IO相关的方法的时候,首先获得一个Future的代理类,同时线程并不会被阻塞。继续执行之后的逻辑,直到真正要使用远程调用返回的结果的时候,才需要调用future的get()...

2017-10-24 00:00:07 173

原创 Hystrix入门研究

1、Hystrix是什么Hystrix 是Netflix开源的一个针对分布式容错和库。Hystrix的主要功能是隔离分布式系统之间的故障,防止故障带来的雪崩效应。同时也能提供一个分布式服务的优雅的降级方案。从而提高系统的可用性的组件。2、Hystrix设计理念是什么(其实也是高可用系统设计的理念)?防止单个系统故障后,造成容器(tomcat,scf)的线...

2017-10-23 23:59:28 77

原创 Redis实现分布式锁

Redis实现分布式锁 Posted on ...

2017-10-23 23:55:03 67

空空如也

空空如也

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

TA关注的人

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