自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 SpringBoot分布式锁-Distributed-Lock

分布式锁: Distributed-Lock一、简介​ Distributed-Lock为解决分布式系统中资源争夺而生。在当前分布式、微服务架构盛行的年代,多个服务可能会对第一个资源进行抢夺,如果不加以控制,可能导致无法想象有点后果,或者有一些操作不可以同时多次操作。​ 1、数据的存储目前只支持三种:Redis、Zookeeper、Mysql,推荐使用Redis。​ 2、支持超时自动释放锁,防止死锁问题​ 3、使用简单方便,侵入式较低,代码只需要一个注解​ 4、锁的资源ID以

2020-10-13 17:36:11 7765

原创 Spring Cloud Gateway源码系列之路由配置加载过程

深入分析Gateway初始化加载定义的路由配置阶段源码

2022-09-28 20:08:01 844 1

原创 JSON反序列化泛型丢失问题

多层泛型T,Json反序列化导致泛型丢失

2022-07-12 17:54:24 1460

原创 Nacos注册整体流程源码分析

前言不管是使用spring boot的方式集成nacos还是使用spring cloud alibaba方式集成或者是单独使用nacos。最终具体实现注册或者获取服务实例的方法都是使用的 nacos-client包,nacos-api只是定义了接口,具体的操作还是 nacos-client完成的。我们的项目中集成nacos在整个nacos的接入中是客户端的角色,而所有数据的存储以及维护是有单独的nacos server来实现的,nacos的客户端与服务端是通过http的形式来通讯的。本文只介绍nacos的

2021-11-05 18:16:03 300

原创 sharding-jdbc-spring-boot-starter最简单使用

前言网上已经有很多的关于sharding-jdbc的使用,但是很多都是抄来抄去,说的也不是特别的完整,作者本来是闲来无事想跑起来试一下效果,但是找了一些文档都不是说的很明白。而且很多都是使用的是sharding-jdbc-core ,但是我们现在开发应该很少用spring mvc开发吧,大部分都是springboot开发,所以还是想用starter的方式。经历不断试错后搭建起最简单的、配置代码最少的测试案例。如果帮助到了你帮忙点赞啊。一、引入依赖mybatis-spring-boot-starter

2021-11-03 17:22:06 3896

原创 阻塞队列BlockingQueue(ArrayBlockingQueue)源码分析

阻塞队列有多种实现,这里我们就先分析一下ArrayBlockingQueue,该队列获取数据、插入数据、检测数据的方式有多种,但是不同的方法会有不同的效果,比如插入数据时,如果队列已经满了,调用add方法插入会抛异常,但是是有put插入数据就会阻塞当前线程。具体的效果查看下面的图。这里我们只是重点查看阻塞的方法,put和take两个方法,看他是怎么做到阻塞的。1. 创建一个有界阻塞队列,长度为2BlockingQueue<Integer> queue = new ArrayBlockin

2021-05-13 11:54:22 97

原创 AQS(AbstractQueuedSynchronizer)总结

AQS是一个同步队列,它是一个抽象类,并不会单独使用,主要用途是处理多线程竞争,将未获取到锁的线程进行排队,其中除了维护一个队列之外,还有两个值比较关键,分别是: state 标记位 exclusiveOwnerThread 当前所属线程 维护队列的两个参数分别是: Node head 同步队列头节点 Node tail 同步队列未节点 维护的队列是一个双向链表,指向来上一个和下一个节点。AQS是JUC的基石,类似于CountDownLat...

2021-02-10 01:45:30 167

原创 Mybatis自动装配源码分析

一、springboot整合mybatispom引入<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version></dependency>mybatis的starter工程的作用只是用来导入相关

2020-12-03 17:56:33 666

原创 Mybatis与Spring整合部分源码分析

一、@MapperScan注解解析@MapperScan(basePackages = "com.ziroom.springboot.springbootsourcetest.mapper")@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(MapperScannerRegistrar.class)@Repeatable(MapperScans.class)public @interf

2020-12-02 17:08:21 241 2

原创 Mybatis执行流程源码分析

一、SqlSessionFactoryBuilder构建该方法用于创建SqlSessionFactory,包含下面几种类型的方法,用于创建SqlSessionFactorypublic SqlSessionFactory build(InputStream inputStream)public SqlSessionFactory build(InputStream inputStream, String environment)public SqlSessionFactory bui

2020-11-29 22:08:52 129

原创 关于使用nacos遇到的坑

在使用spring cloud nacos遇到的坑1、版本不同,artifactId也不同<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.0.RELEASE</version> <type>pom</t

2020-06-29 12:17:47 3321 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除