摘要: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 阅读 (430) 评论 (0) 编辑
摘要:前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的 阅读全文
posted @ 2018-08-14 00:41 throwable 阅读 (11456) 评论 (7) 编辑
摘要:前提 创业小团队,无论选择任何方案,都优先考虑节省成本。关于分布式定时调度框架,成熟的候选方案有 、`Easy Scheduler Light Task Scheduler Elastic Job Zookeeper Quartz MySQL X`锁方案( 加锁)实现服务集群中单个触发器只有一个节点 阅读全文
posted @ 2020-04-10 00:09 throwable 阅读 (392) 评论 (0) 编辑
摘要:前提 最近的新项目和数据同步相关,有定时调度的需求。之前一直有使用过 、`XXL Job Easy Scheduler Spring Scheduling Scheduling @Scheduled Scheduling JDBC`数据源。 Scheduling模块 模块是 依赖下的一个包 : 这个 阅读全文
posted @ 2020-04-01 23:55 throwable 阅读 (194) 评论 (2) 编辑
摘要:前提 近段时间,业务系统架构基本完备,数据层面的建设比较薄弱,因为笔者目前工作重心在于搭建一个小型的数据平台。优先级比较高的一个任务就是需要近实时同步业务系统的数据(包括保存、更新或者软删除)到一个另一个数据源,持久化之前需要清洗数据并且构建一个相对合理的便于后续业务数据统计、标签系统构建等扩展功能 阅读全文
posted @ 2020-03-13 00:45 throwable 阅读 (368) 评论 (3) 编辑
摘要:前提 已经很久没深入研究过算法相关的东西,毕竟日常少用,就算死记硬背也是没有实施场景导致容易淡忘。最近在做一个脱敏数据和明文数据匹配的需求的时候,用到了一个算法叫 ,本文对此算法原理做简单的分析,并且用此算法解决几个常见的场景。 什么是Levenshtein Distance ,一般称为编辑距离( 阅读全文
posted @ 2020-03-08 21:35 throwable 阅读 (124) 评论 (0) 编辑
摘要:前提 前面通过五篇文章基本介绍完 常用的日期时间 以及一些工具类,这篇博文主要说说笔者在生产实战中使用 日期时间 的一些经验。 系列文章: "JSR310新日期API(一) 时区与时间偏移量" "JSR310新日期API(二) 日期时间API" "JSR310新日期API(三) 日期时间格式化与解析 阅读全文
posted @ 2020-03-03 23:51 throwable 阅读 (131) 评论 (0) 编辑
摘要:前提 作为 开发者,很多场景下会使用 开发 应用,目前微服务主流 全家桶也是基于 搭建的。 应用部署到服务器上,需要编写运维管理脚本。本文尝试基于经验,总结之前生产使用的 脚本,编写一个可以复用的 应用运维脚本,从而极大减轻 应用启动、状态、重启等管理的工作量。本文的 脚本在 中正常运行,其他操作系 阅读全文
posted @ 2020-03-01 22:07 throwable 阅读 (268) 评论 (0) 编辑
摘要:前提 最近在看JUC线程池 的源码实现,其中了解到 的实现原理。从目前 的实现来看,虽然实现了异步提交任务,但是任务结果的获取过程需要主动调用 或者 ,而前者是阻塞的,后者在异步任务执行时间不确定的情况下有可能需要进行轮询,这两种情况和异步调用的初衷有点相违背。于是笔者想结合目前了解到的 实现原理的 阅读全文
posted @ 2020-02-16 23:42 throwable 阅读 (181) 评论 (0) 编辑
摘要:前提 Java反射的API在JavaSE1.7的时候已经基本完善, 但是本文编写的时候使用的是Oracle JDK11 ,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行Debug。 本文主要介绍反射中一个比较难的问题 泛型。 泛型的简介 泛型是在2004年Java 阅读全文
posted @ 2020-02-16 10:55 throwable 阅读 (96) 评论 (0) 编辑
摘要:前提 最近接触到的一个项目要兼容新老系统,最终采用了 (实际上用的是 )用于在子线程获取父线程中共享的变量。问题是解决了,但是后来发现对 的理解不够深入,于是顺便把它的源码阅读理解了一遍。在谈到 之前先卖个关子,先谈谈黄金分割数。本文在阅读 源码的时候是使用JDK8(1.8.0_181)。 黄金分割 阅读全文
posted @ 2020-02-14 12:45 throwable 阅读 (211) 评论 (0) 编辑
摘要:背景 最近在做一个新项目的时候引入了一个架构方面的需求,就是需要检查项目的编码规范、模块分类规范、类依赖规范等,刚好接触到,正好做个调研。 很多时候,我们会制定项目的规范,例如: 硬性规定项目包结构中service层不能引用controller层的类(这个例子有点极端)。 硬性规定定义在contro 阅读全文
posted @ 2020-02-12 09:46 throwable 阅读 (311) 评论 (0) 编辑