记 mysql-connector-java:8.0.28 的 bug 排查,你可能也踩坑了

前言 如标题,最终查明问题是因为 mysql-connector-java:8.0.28 的一个 bug 导致的。但是在真相未浮出之前,整个问题可谓扑朔迷离,博主好久没有排查过如此得劲的 bug ,随着一层层的 debug 深入,真相也随之浮出水面。这个问题属于底层 jdbc 驱动的问题,具有普遍性,可能不知不觉中,你的应用也在线上遭受这个 bug 的摧残,所以,请耐心听我讲完这个故事,然后回去检查下你的应用状态,...

阅读全文 »

jedis 连接池 jedisPool 的实现原理浅析

前言 文章首发在 osc 了,因为富文本编辑器没法完美兼容,所以偷懒,这里只贴 osc 的地址,也是为了更好的阅读体验。详情信息可以去 osc 查看。 首发链接:https://my.oschina.net/klblog/blog/5520235 摘要: jedisPool 是基于 Apache-commons-pool2 的抽象对象池(objectPool)技术实现的,在 jedisPool 中,一个连接即一个 jedisObject 对象实例。jedisPool 的核心也就是:根据设置的 poolConfig ,围绕连接池容器 LinkedBloc...

阅读全文 »

java管道流 PipedInputStream & PipedOutputStream 的应用

前言 PipedInputStream 和 PipedOutputStream 设计用来解决跨线程的字节数据传输。它们总是成对出现的,而在使用上,也只能 工作在两个不同的线程上,在一个线程里使用管道输入和输出流可能会造成死锁。网上有很多介绍这两个存在于 io 包下的 api。却几乎 找不到一个写 PipedInputStream 的使用场景的,所以本文结合实际业务,来聊一聊 PipedInputStream 的应用。 原理简介 我们知道,输出流写数...

阅读全文 »

我们的开源项目kkFileView v2.2.0发布了

kkfileview 文件在线预览 此项目为文件文档在线预览项目解决方案,项目使用流行的 spring boot 搭建,易上手和部署,部署好后可以独立提供预览服务,使用 http 接口访问,不需要和应用集成,具有跨系统跨语言使用的特性。提供 zip/tar.gz 发行包、自定义配置文件、和启动/停止脚本等,极大方便部署使用,同时官方发布 Docker 镜像,方便容器环境中部署使用。基本支持主流办公文档的在线...

阅读全文 »

java开源区块链jdchain-初始化创世区块

java开源区块链jdchain-初始化创世区块

前言 搭建区块链服务第一步就是初始化创世区块,创建账本。生成dchain初始化创世区块有两种方式,一种是通过官方提供的区块链部署工具,在页面上操作初始化,一种是通过初始化脚本创建。目前,部署工具初始化账本功能有限,只支持btfsmart共识算法的节点初始化,如果要支持mq的共识,只能使用初始化账本的脚本创建, 第一步、生成公私钥 使用部署工具生成公私钥,虽然部署...

阅读全文 »

一天入门java开源区块链-jdchain

一天入门java开源区块链-jdchain

前言 jdchain是京东数科开源的区块链平台,目标是实现一个面向企业应用场景的通用区块链框架系统,能够作为企业级基础设施,为业务创新提供高效、灵活和安全的解决方案。之所以选择jdchain研究是因为jdchain是为数不多的底层也是采用java实现的一个区块链平台 项目地址: https://github.com/blockchain... 文档地址: http://ledger.jd.com/setup.html 部署组件 peer:区块链主节点,参与共识、账本操...

阅读全文 »

一个巧合踩了MapStruct表达式的坑

一个巧合踩了MapStruct表达式的坑

前言 MapStruct是一个代码生成器,它基于约定优于配置的方法大大简化了Java Bean类型之间的映射的实现。生成的映射代码使用简单的方法调用,因此速度快,类型安全且易于理解。 MapStruct的 表达式功能是为了处理特殊对象属性的映射问题,比如DTO中的status属性转换成PO中的status需要进一步的处理,这个时候就需要用到表达式功能了。这里不再赘述关于 MapStruct的使用问题,更多的使用教...

阅读全文 »