logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入理解JDK中的Reference原理和源码实现

前提这篇文章主要基于JDK11的源码和最近翻看的《深入理解Java虚拟机-2nd》一书的部分内容,对JDK11中的Reference(引用)做一些总结。值得注意的是,通过笔者对比一下JDK11和JDK8对于java.lang.ref包的相关实现,发现代码变化比较大,因此本文的源码分析可能并不适合于JDK11之外的JDK版本。Reference的简介和分类在JDK1.2之前,Java中的引用的...

Spring Cloud Gateway入坑记

前提最近在做老系统的重构,重构完成后新系统中需要引入一个网关服务,作为新系统和老系统接口的适配和代理。之前,很多网关应用使用的是Spring-Cloud-Netfilx基于Zuul1.x版本实现的那套方案,但是鉴于Zuul1.x已经停止迭代,它使用的是比较传统的阻塞(B)IO + 多线程的实现方案,其实性能不太好。后来Spring团队干脆自己重新研发了一套网关组件,这个就是本次要调研的Spring

#spring
一个基于RabbitMQ的可复用的事务消息方案

前提分布式事务是微服务实践中一个比较棘手的问题,在笔者所实施的微服务实践方案中,都采用了折中或者规避强一致性的方案。参考Ebay多年前提出的本地消息表方案,基于RabbitMQ和MySQL(JDBC)做了轻量级的封装,实现了低入侵性的事务消息模块。本文的内容就是详细分析整个方案的设计思路和实施。环境依赖如下:JDK1.8+spring-boot-start-web:2.x.x、spring...

#java#分布式
Windows10系统下使用Docker搭建ClickHouse开发环境

前提随着现在业务开展,几个业务系统的数据量开始急剧膨胀。之前使用了关系型数据库MySQL进行了一次数据仓库的建模,发现了数据量上来后,大量的JOIN操作在提高了云MySQL的配置后依然有...

#数据库#docker
SofaBoot使用Nacos进行服务注册发现

前提最近创业公司的项目组基于业务需要,开发一套新的微服务,考虑到选用的组件必须是主流、社区活跃、生态完善以及方便迁移到云上等因素,引入了SOFAStack全家桶。微服务开发里面,一个很重要的功能就是服务发现与注册,笔者花了点时间做了一个SOFABoot、SOFARpc结合Nacos实现微服务发现注册与远程调用的示例。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-..

#spring boot#java
基于Canal和Kafka实现MySQL的Binlog近实时同步

前提近段时间,业务系统架构基本完备,数据层面的建设比较薄弱,因为笔者目前工作重心在于搭建一个小型的数据平台。优先级比较高的一个任务就是需要近实时同步业务系统的数据(包括保存、更新或者软删除)到一个另一个数据源,持久化之前需要清洗数据并且构建一个相对合理的便于后续业务数据统计、标签系统构建等扩展功能的数据模型。基于当前团队的资源和能力,优先调研了Alibaba开源中间件Canal的使用。这篇文...

简化ETL工作,编写一个Canal胶水层

前提❝这是一篇憋了很久的文章,一直想写,却又一直忘记了写。整篇文章可能会有点流水账,相对详细地介绍怎么写一个小型的"框架"。这个精悍的胶水层已经在生产环境服役超过半年,这...

#java#spring#数据库 +1
基于Java和Bytemd用120行代码实现一个桌面版Markdown编辑器

前提某一天点开掘金的写作界面的时候,发现了内置Markdown编辑器有一个Github的图标,点进去就是一个开源的Markdown编辑器项目bytemd(https://github.co...

#xhtml
冷饭新炒:理解Snowflake算法的实现原理

前提Snowflake(雪花)是Twitter开源的高性能ID生成算法(服务)。上图是Snowflake的Github仓库,master分支中的REAEMDE文件中提示:初始版本于201...

#java#分布式#python +1
到底了