摘要: 前提 javax.crypto.Cipher,翻译为密码,其实叫做 密码器 更加合适。Cipher是JCA(Java Cryptographic Extension,Java加密扩展)的核心,提供基于多种加解密算法的加解密功能。在不了解Cipher之前,我们在完成一些需要加解密的模块的时候总是需要到阅读全文
posted @ 2018-08-15 11:43 throwable 阅读(625) 评论(0) 编辑
摘要: 前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的阅读全文
posted @ 2018-08-14 00:41 throwable 阅读(6714) 评论(6) 编辑
摘要: 前提 最近由于系统业务量比较大,从生产的GC日志(结合Pinpoint)来看,需要对部分系统进行GC调优。但是鉴于以往不是专门做这一块,但是一直都有零散的积累,这里做一个相对全面的总结。本文只针对 也就是 或者 ,版本为Java8,其他VM不一定适用。 什么是GC(Garbage Collectio阅读全文
posted @ 2019-06-09 12:00 throwable 阅读(172) 评论(0) 编辑
摘要: 前提 我们平时在用 的时候,只要是经过 处理的请求,可以通过 和`@ExceptionHandler ResponseEntityExceptionHandler DefaultHandlerExceptionResolver Response`的渲染,如果找不到默认的异常处理器则用默认的进行兜底(阅读全文
posted @ 2019-05-11 15:43 throwable 阅读(452) 评论(0) 编辑
摘要: Spring Cloud Gateway入坑记 前提 最近在做老系统的重构,重构完成后新系统中需要引入一个网关服务,作为新系统和老系统接口的适配和代理。之前,很多网关应用使用的是 基于 版本实现的那套方案,但是鉴于 已经停止迭代,它使用的是比较传统的阻塞(B)IO + 多线程的实现方案,其实性能不太阅读全文
posted @ 2019-05-04 10:42 throwable 阅读(1028) 评论(0) 编辑
摘要: 深入理解Object提供的阻塞和唤醒API 前提 前段时间花了大量时间去研读JUC中同步器 的源码实现,再结合很久之前看过的一篇关于 提供的等待和唤醒机制的JVM实现,发现两者有不少的关联,于是决定重新研读一下 中提供的阻塞和唤醒方法。本文阅读JDK类库源码使用的JDK版本是JDK11,因为本文内容阅读全文
posted @ 2019-04-30 13:13 throwable 阅读(260) 评论(0) 编辑
摘要: 通过micrometer实时监控线程池的各项指标 前提 最近的一个项目中涉及到文件上传和下载,使用到JUC的线程池 ,在生产环境中出现了某些时刻线程池满负载运作,由于使用了 拒绝策略,导致满负载情况下,应用接口调用无法响应,处于假死状态。考虑到之前用micrometer + prometheus +阅读全文
posted @ 2019-04-14 23:55 throwable 阅读(245) 评论(0) 编辑
摘要: JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC( )包的时候引入了 ,Abstract Queued Synchronizer,也就是"基于队列实现的抽象同步器",一般我们称之为AQS。其实Doug Lea大神编写AQS是有严阅读全文
posted @ 2019-04-07 12:28 throwable 阅读(161) 评论(0) 编辑
摘要: 前提 紧接着上一篇《通过源码浅析JDK中的资源加载》,ServiceLoader是SPI(Service Provider Interface)中的服务类加载的核心类,也就是,这篇文章先介绍ServiceLoader的使用方式,再分析它的源码。 ServiceLoader的使用 这里先列举一个经典的阅读全文
posted @ 2018-10-14 23:42 throwable 阅读(608) 评论(0) 编辑
摘要: 前提 最近在做一个基础组件项目刚好需要用到JDK中的资源加载,这里说到的资源包括类文件和其他静态资源,刚好需要重新补充一下类加载器和资源加载的相关知识,整理成一篇文章。 理解类的工作原理 这一节主要分析类加载器和双亲委派模型。 什么是类加载器 虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获阅读全文
posted @ 2018-10-14 12:31 throwable 阅读(305) 评论(0) 编辑
摘要: 前提 上一篇文章复习介绍了JDK中注解的底层实现,跟注解一样比较常用,但是底层实现比较神秘的还有枚举类型。趁着国庆假期的最后两天,把JDK中枚举的底层实现也进行一次探究。 通过例子查找本质 在探究JDK注解的底层实现的时候,因为预先参考了不少资料,所以整个过程有点"未卜先知"的意味,这里尝试用未知的阅读全文
posted @ 2018-10-06 22:45 throwable 阅读(416) 评论(0) 编辑
摘要: 前提 用Java快三年了,注解算是一个常用的类型,特别是在一些框架里面会大量使用注解做组件标识、配置或者策略。但是一直没有深入去探究JDK中的注解到底是什么,底层是怎么实现了?于是参考了一些资料,做了一次稍微详细的分析。 JDK的注解描述 参考JavaSE 8里面的 "JLS 9.6" 对注解的描述阅读全文
posted @ 2018-10-06 16:13 throwable 阅读(1227) 评论(1) 编辑