摘要:前提 Lettuce是一个Redis的Java驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之后替换为Lettuce。Lettuce翻译为生菜,没错,就是吃的那种生菜,所以它的Logo长这样: 阅读全文
posted @ 2019-09-28 09:33 throwable 阅读(32541) 评论(6) 推荐(15) 编辑
摘要: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 阅读(973) 评论(0) 推荐(1) 编辑
摘要:前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景。为了模拟真实的交互场景,先定制一下整个交互流程。第三方传输(包括请求和响应)数据报文包括三个部分: 1、timestamp,long类型,时间戳。 2、data,String类型,实际的业务请求数据转化成的 阅读全文
posted @ 2018-08-14 00:41 throwable 阅读(15855) 评论(7) 推荐(2) 编辑
摘要:前提 在某一次用户标签服务中大量用到异步流程,使用了RabbitMQ进行解耦。其中,为了提高消费者的处理效率针对了不同节点任务的消费者线程数和prefetch_count参数都做了调整和测试,得到一个相对合理的组合。这里深入分析一下prefetch_count参数在RabbitMQ中的作用。 pre 阅读全文
posted @ 2020-10-18 12:28 throwable 阅读(174) 评论(0) 推荐(0) 编辑
摘要:前提 这是一篇憋了很久的文章,一直想写,却又一直忘记了写。整篇文章可能会有点流水账,相对详细地介绍怎么写一个小型的"框架"。这个精悍的胶水层已经在生产环境服役超过半年,这里尝试把耦合业务的代码去掉,提炼出一个相对简洁的版本。 之前写的几篇文章里面其中一篇曾经提到过Canal解析MySQL的binlo 阅读全文
posted @ 2020-10-07 11:51 throwable 阅读(238) 评论(0) 推荐(0) 编辑
摘要:前提 笔者做小数据和零号提数工具人已经有一段时间,服务的对象是运营和商务的大佬,一般要求导出的数据是Excel文件,考虑到初创团队机器资源十分有限的前提下,选用了阿里出品的Excel工具EasyExcel。这里简单分享一下EasyExcel的使用心得。EasyExcel从其依赖树来看是对apache 阅读全文
posted @ 2020-09-12 10:53 throwable 阅读(1253) 评论(0) 推荐(4) 编辑
摘要:前提 Canal上一个正式版是于2019-9-2发布的v1.1.4,笔者几个月前把这个版本的Canal推上了生产环境,部署了HA集群。过程中虽然遇到不少的坑,但是在不出问题的前提下,Canal的作用还是非常明显的。上周的一次改造上线之后,去掉了原来对业务系统订单数据通过RabbitMQ实时推送的依赖 阅读全文
posted @ 2020-09-05 11:27 throwable 阅读(245) 评论(0) 推荐(0) 编辑
摘要:前提 下面的简介摘抄自docsify的官网 https://docsify.js.org 中的简介 docsify是一个神奇的文档网站生成器。他可以快速帮你生成文档网站。不同于GitBook、Hexo的地方是它不会生成静态的.html文件,所有转换工作都是在运行时。如果你想要开始使用他,只需要创建一 阅读全文
posted @ 2020-09-03 00:27 throwable 阅读(655) 评论(2) 推荐(2) 编辑
摘要:前提 很早之前就打算看一次JUC线程池ThreadPoolExecutor的源码实现,由于近段时间比较忙,一直没有时间整理出源码分析的文章。之前在分析扩展线程池实现可回调的Future时候曾经提到并发大师Doug Lea在设计线程池ThreadPoolExecutor的提交任务的顶层接口Execut 阅读全文
posted @ 2020-08-27 22:07 throwable 阅读(1062) 评论(5) 推荐(8) 编辑
摘要:前提 这篇文章主要分析一下Introspector(内省,应该读xing第三声,没有找到很好的翻译,下文暂且这样称呼)的用法。Introspector是一个专门处理JavaBean的工具类,用来获取JavaBean里描述符号,常用的JavaBean的描述符号相关类有BeanInfo、Property 阅读全文
posted @ 2020-08-11 08:55 throwable 阅读(235) 评论(0) 推荐(0) 编辑
摘要:前提 Snowflake(雪花)是Twitter开源的高性能ID生成算法(服务)。 上图是Snowflake的Github仓库,master分支中的REAEMDE文件中提示:初始版本于2010年发布,基于Apache Thrift,早于Finagle(这里的Finagle是Twitter上用于RPC 阅读全文
posted @ 2020-08-10 09:08 throwable 阅读(383) 评论(0) 推荐(2) 编辑
摘要:前提 在忍耐了很久之后,忍不住爆发了,在掘金发了条沸点(下班时发的): 这是一个令人悲伤的故事,这条情感爆发的沸点好像被屏蔽了,另外小水渠(Canal意为水道、管道)上线一段时间,不出坑的时候风平浪静,一旦出坑令人想屎。重点吐槽几点: 目前最新的RELEASE版本为v1.1.4,发布于2019-9- 阅读全文
posted @ 2020-08-07 00:10 throwable 阅读(484) 评论(5) 推荐(2) 编辑
摘要:前提 最近有点懒散,没什么比较有深度的产出。刚好想重新研读一下JUC线程池的源码实现,在此之前先深入了解一下Java中的线程实现,包括线程的生命周期、状态切换以及线程的上下文切换等等。编写本文的时候,使用的JDK版本是11。 Java线程的实现 在JDK1.2之后,Java线程模型已经确定了基于操作 阅读全文
posted @ 2020-08-05 12:51 throwable 阅读(137) 评论(0) 推荐(0) 编辑