摘要:2019年 JUC线程池服务ExecutorService接口实现源码分析 Github Page:http://www.throwable.club/2019/07/27/java concurrency executor service Coding Page:http://throwable. 阅读全文
posted @ 2019-07-29 23:39 throwable 阅读 (127) 评论 (0) 编辑
摘要:前提 javax.crypto.Cipher,翻译为密码,其实叫做 密码器 更加合适。Cipher是JCA(Java Cryptographic Extension,Java加密扩展)的核心,提供基于多种加解密算法的加解密功能。在不了解Cipher之前,我们在完成一些需要加解密的模块的时候总是需要到 阅读全文
posted @ 2018-08-15 11:43 throwable 阅读 (736) 评论 (0) 编辑
摘要:前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的 阅读全文
posted @ 2018-08-14 00:41 throwable 阅读 (8235) 评论 (6) 编辑
摘要:前提 最近学习 的时候想做一个基于 服务协议的编码解码模块,过程中顺便阅读了 服务序列化协议 ,结合自己的理解对文档进行了翻译并且简单实现了 基于 语言的解析。编写本文的使用使用的 版本为 。 RESP简介 客户端与 服务端基于一个称作 的协议进行通信, 全称为 ,也就是 序列化协议。虽然 为`Re 阅读全文
posted @ 2019-10-09 22:17 throwable 阅读 (387) 评论 (0) 编辑
摘要:前言 最近在调研 的使用,在编写编码解码模块的时候遇到了一个中文字符串编码和解码异常的情况,后来发现是笔者犯了个低级错误。这里做一个小小的回顾。 错误重现 在设计 的自定义协议的时候,发现了字符串类型的属性,一旦出现中文就会出现解码异常的现象,这个异常并不一定出现了 ,而是出现了解码之后字符截断出现 阅读全文
posted @ 2019-10-03 09:13 throwable 阅读 (171) 评论 (0) 编辑
摘要:前提 是一个 的`Java RedisTemplate Debug spring data redis Lettuce Lettuce Logo`长这样: 既然能被 生态所认可, 想必有过人之处,于是笔者花时间阅读她的官方文档,整理测试示例,写下这篇文章。编写本文时所使用的版本为 ,`SpringB 阅读全文
posted @ 2019-09-28 09:33 throwable 阅读 (458) 评论 (0) 编辑
摘要:2019年 JUC线程池服务ExecutorService接口实现源码分析 Github Page:http://www.throwable.club/2019/07/27/java concurrency executor service Coding Page:http://throwable. 阅读全文
posted @ 2019-07-29 23:39 throwable 阅读 (127) 评论 (0) 编辑
摘要:前提 最近由于系统业务量比较大,从生产的GC日志(结合Pinpoint)来看,需要对部分系统进行GC调优。但是鉴于以往不是专门做这一块,但是一直都有零散的积累,这里做一个相对全面的总结。本文只针对 也就是 或者 ,版本为Java8,其他VM不一定适用。 什么是GC(Garbage Collectio 阅读全文
posted @ 2019-06-09 12:00 throwable 阅读 (303) 评论 (0) 编辑
摘要:前提 我们平时在用 的时候,只要是经过 处理的请求,可以通过 和`@ExceptionHandler ResponseEntityExceptionHandler DefaultHandlerExceptionResolver Response`的渲染,如果找不到默认的异常处理器则用默认的进行兜底( 阅读全文
posted @ 2019-05-11 15:43 throwable 阅读 (947) 评论 (0) 编辑
摘要:Spring Cloud Gateway入坑记 前提 最近在做老系统的重构,重构完成后新系统中需要引入一个网关服务,作为新系统和老系统接口的适配和代理。之前,很多网关应用使用的是 基于 版本实现的那套方案,但是鉴于 已经停止迭代,它使用的是比较传统的阻塞(B)IO + 多线程的实现方案,其实性能不太 阅读全文
posted @ 2019-05-04 10:42 throwable 阅读 (2044) 评论 (0) 编辑
摘要:深入理解Object提供的阻塞和唤醒API 前提 前段时间花了大量时间去研读JUC中同步器 的源码实现,再结合很久之前看过的一篇关于 提供的等待和唤醒机制的JVM实现,发现两者有不少的关联,于是决定重新研读一下 中提供的阻塞和唤醒方法。本文阅读JDK类库源码使用的JDK版本是JDK11,因为本文内容 阅读全文
posted @ 2019-04-30 13:13 throwable 阅读 (331) 评论 (0) 编辑
摘要:通过micrometer实时监控线程池的各项指标 前提 最近的一个项目中涉及到文件上传和下载,使用到JUC的线程池 ,在生产环境中出现了某些时刻线程池满负载运作,由于使用了 拒绝策略,导致满负载情况下,应用接口调用无法响应,处于假死状态。考虑到之前用micrometer + prometheus + 阅读全文
posted @ 2019-04-14 23:55 throwable 阅读 (486) 评论 (0) 编辑
摘要:JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC( )包的时候引入了 ,Abstract Queued Synchronizer,也就是"基于队列实现的抽象同步器",一般我们称之为AQS。其实Doug Lea大神编写AQS是有严 阅读全文
posted @ 2019-04-07 12:28 throwable 阅读 (200) 评论 (0) 编辑