摘要: 一、背景 之前写了一篇《手写事件发布订阅框架》,虽然可以用但代码写的比较粗糙,且存在优化的空间,于是对其进行了重构主要包括以下几点: 面向接口编程,包结构更加清晰。 框架改成spring-boot-starter的形式实现即插即用。 对核心类EventManager的代码进行了部分剥离,使其更符合职 阅读全文
posted @ 2022-05-09 23:04 烟味i 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 一、前言 ​ 发布订阅模式也叫观察者模式,利用该模式可以进行代码解耦,很多框架都用到该设计模式,比如Spring的事件机制,guava的EventBus(事件总线)等,不清楚观察者模式的话可以查看本人之前写的博客《设计模式之观察者模式》。 ​ 为了更好的了解现有的事件框架实现原理,便手写了一个简单的 阅读全文
posted @ 2022-04-23 16:46 烟味i 阅读(297) 评论(0) 推荐(1) 编辑
摘要: Hibernate-Validator框架提供了一系列的注解去校验字段是否符合预期,如@NotNull注解可以校验字段是否为null,如果为null则抛出对应的异常提示信息,通过注解大大减少了我们日常的开发工作量。包括流行的spring-boot-starter-validation,底层也是靠Hibernate-Validator实现的。 ​ 但是在实际的开发中,现有的注解可能不能满足我们的校验需求,Hibernate-Validator框架就贴心的提供了扩展,通过自定义校验注解来封装我们自己的校验逻辑。 阅读全文
posted @ 2021-11-12 23:12 烟味i 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 一、Conditional注解介绍 对SpringBoot有足够了解的小伙伴应该都用过Conditional系列注解,该注解可用在类或者方法上用于控制Bean的初始化。 常用的Conditional注解有以下几种: @ConditionalOnBean:如果存在对应的Bean,则进行当前Bean的初 阅读全文
posted @ 2021-10-20 22:16 烟味i 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 一、简介 在近几年流行的微服务架构中,由于对服务和数据库进行了拆分,原来的一个单进程本地事务变成多个进程的本地事务,这时要保证数据的一致性,就需要用到分布式事务了。分布式事务的解决方案有很多,其中国内比较主流的框架就是Seata了。 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单 阅读全文
posted @ 2021-09-04 22:24 烟味i 阅读(599) 评论(0) 推荐(1) 编辑
摘要: 一、前言 ​ 最近在github上看了soul网关的设计,突然就来了兴趣准备自己从零开始写一个高性能的网关。经过两周时间的开发,我的网关ship-gate核心功能基本都已完成,最大的缺陷就是前端功底太差没有管理后台😤。 二、设计 2.1技术选型 网关是所有请求的入口,所以要求有很高的吞吐量,为了实 阅读全文
posted @ 2021-01-02 20:52 烟味i 阅读(3055) 评论(9) 推荐(3) 编辑
该文被密码保护。 阅读全文
posted @ 2020-12-23 20:19 烟味i 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 一、锁介绍 不同存储引擎支持的锁是不同的,比如MyISAM只有表锁,而InnoDB既支持表锁又支持行锁。 下图展示了InnoDB不同锁类型之间的关系: 图中的概念比较多不好理解,下面依次进行说明。 1.1乐观锁 ​ 乐观锁是相对悲观锁而言的,乐观锁假设数据一般情况下不会造成冲突,所在在数据进行提交更 阅读全文
posted @ 2020-10-04 21:44 烟味i 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 一、前言 前段时间看到一篇不错的文章《看了这篇你就会手写RPC框架了》,于是便来了兴趣对着实现了一遍,后面觉得还有很多优化的地方便对其进行了改进。 主要改动点如下: 除了Java序列化协议,增加了protobuf和kryo序列化协议,配置即用。 增加多种负载均衡算法(随机、轮询、加权轮询、平滑加权轮 阅读全文
posted @ 2020-08-22 13:10 烟味i 阅读(1977) 评论(0) 推荐(1) 编辑
摘要: 一、前言 要想成为一名高级Java开发具备JVM调优的能力必不可少,能够根据项目实际情况进行JVM调优的前提是理解JVM原理和常用JVM参数的含义及作用,虽然《深入理解Java虚拟机》这本书已经写了很多,但是里面的提到的参数比较散乱,故写此文总结。 二、JVM参数JVM相关参数名称作用默认值备注-Xms初始堆大小物理内存的1/64(113543K(130112K), 0.0094143 ... 阅读全文
posted @ 2020-07-31 23:02 烟味i 阅读(635) 评论(0) 推荐(0) 编辑