自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池源码

学习

2024-02-12 14:04:19 121

原创 redis分布式锁代码

这是redis的分布式锁代码,没有用redission。

2023-12-29 21:19:26 368

原创 Kafka、RocketMQ、RabbitMQ的比较总结Kafka、RocketMQ、RabbitMQ的比较总结

【精选】Kafka、RocketMQ、RabbitMQ的比较总结_kafka rabbitmq rocketmq_【江湖】三津的博客-CSDN博客

2023-11-16 17:59:32 991 1

原创 连接池的大体介绍,常用配置及在springboot项目中的应用

常见的连接池配置参数。

2023-11-16 17:58:24 159

原创 反射在java框架中的应用

反射在mybaits框架中的应用。反射在spring框架中的应用。

2023-11-16 17:56:03 101

原创 CountDownLatch、CyclicBarrier、Semaphore案例

并发编程

2023-11-16 17:52:49 66

原创 分布式事务解决方案

分布式事务解决方案 分布式事务解决方案。

2023-11-16 17:51:16 52

原创 zookeeper源码

leader选举原理和底层源码:zookpeer的ZAB协议的原理及底层源码实现:

2023-11-04 22:53:43 212

原创 kafka学习

链接1:Kafka入门教程_香菜+的博客-CSDN博客链接2:https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=d716b5f663babe03088adca09b0fb938&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D127352103%26_swebfr%3D1%26_swebFromHost%3

2023-09-03 21:48:34 758

原创 ElasticSearch学习

连接2:

2023-09-03 09:56:33 462

原创 Apolo学习

apollo总共有三个端口:8070【控制台服务】(进去后可以创建项目,需要填入一些信息) 8080【eureka服务】 8090【config服务】 管理员账号密码:apollo/admin。在控制台服务中有namespace的概念,可以手动添加,设置key/V,设置好了后就可以被读取这个配置。这个注册中心是apollo内嵌的eureka,不是你自己启动的。.jar是windows 在demo.sh会有配置数据库的配置,需要你自己配置成自己的数据库配置。

2023-09-03 09:43:35 372

原创 docker学习(实操笔记)

第二步:docker使用。

2023-08-28 12:25:52 92

原创 spring常用的11个扩展点

https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=b27472a8ba4e9f7fd3ad8b80bdb5a6dc&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D131315142%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.c

2023-08-19 21:27:28 75

原创 redis总复习

springboot基于redis实现设置缓存和过期时间的代码?

2023-08-19 12:50:53 387

原创 redis五种数据类型的具体使用

https://www.cnblogs.com/lanwp1/articles/14438591.html

2023-04-09 19:56:11 90 1

原创 java实现分布式事务的三种方案

https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=3d975a8deb3896100c6a8e376ef8e54a&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D102655827%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.c

2023-04-09 19:53:34 479

原创 单点登录原理及实现方式

https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=446bfa5062a30950d7d166db43fe3693&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D122066984%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.c

2023-04-09 19:52:05 104

原创 大数据量是如何做限流的

tomcat限流 nginx限流(控制速率和控制并发连接数,基于ip) 速率限制升级版 控制并发数(利用nginx的两个参数)

2023-04-09 19:46:26 83

原创 RocketMQ的学习思路

rocketMQ的各个组成部分及作用: namseServer,brocker,product,consumer。rocketMQ的消息类型消息的发送方式都有哪些,每种有什么特点。rocketMQ的集群搭建原理。recoketMQ的使用场景。消息丢失和消息重复消费。

2023-04-09 19:38:49 89

原创 redis学习思路

redis的几种集群形式及优缺点,主从复制原理,哨兵选举的过程,脑裂问题。五种数据类型及应用场景,关注模型必须讲清楚。redis的持久化策略及特点及选择。redis的分布式锁实现及原理。分布式锁的演变过程及存在的问题。缓存穿透,缓存击穿,缓存雪崩。redis的续命锁实现。

2023-04-09 19:33:53 70

原创 eureka学习思路

5.服务发现(总结三点:1.服务拉取实在项目启动时就有定时任务拉取了 2.服务的实例并不是实时的Eureka-server中的数据,而是一个本地缓存数据 3.缓存更新根据实际需求分为全量拉取和增量拉取)1.系统当前时间>最后更新时间+过期时间+预留时间,其中过期时间默认定义为3个心跳时间,一个心跳时间是30秒,因此过期时间是90秒。3.服务剔除(每60秒执行一次,当eureka-server发现有的实例没有续约超过一定时间,则将该服务从列表剔除,该项工作由一个定时任务完成的。

2023-04-09 19:33:08 573

原创 nacos学习思路

key值为cluster的名字,value为cluster对象,cluster对象中有两个Set这的数据结构,用来存储Instance,这个Instacne才是真正的客户端注册过来的信息。4.如何支持高并发注册:采用内存队列的方式进行服务注册,也就是说客户端不是直接把自己的信息注册到Nacos Server的时候,并不是同步吧信息注册到注册表中,而是采取了内存队列的方式。1.核心概念:Namespace,group,service,cluster,instance。,采用独立的线程池来消费队列进行注册的。

2023-04-09 19:32:39 431 1

原创 hystrix学习思路

熔断原理: 1.熔断类型:1.1:打开 1.2:关闭 1.3:半开 断路器运行流程 断路器打开之。hystrix工作流程。

2023-04-09 19:31:45 73

原创 shareJDBC分库分表

怎样巧妙的从shareJDBC切换到shareProxy。分库分表怎样进行分布式事务控制。什么情况下需要考虑分库分表。

2023-04-09 19:31:04 283

原创 电商项目学习

登录之前也做了拦截器校验,拦截指定的sso/**,admin/**,其他就会报没有权限,比如order/**。@RestControllerAdvice的注解的controller中也捕捉了一下这个异常,并且强转后能获取到错误信息。这块儿也可以通过AOP来做,都可以的。@RestControllerAdvice 定义一个controller,避免你的controller中的异常赤裸裸的返回给用户。springSession的使用(集成之后就可以在redis里看到他的存的值了,下一步需要看一下他的原理)

2023-04-05 21:41:30 328

原创 工作项目学习

redis搭建集群了吗?缓存穿透,缓存雪崩,缓存击穿是这样解决的?用redis分布式锁了吗?用rocketMQ了吗?解决了什么业务问题?rocketMQ搭建集群了吗?消息积压,消息重复消费,消息丢失都是怎么解决的?线程池参数是怎么设置的?哪里用到了,解决了什么问题?我的主要任务是什么?先把自己这块儿的技术和业务搞明白后再将眼光放在整个项目上?并发这里是怎么处理的?用的是什么技术,根据什么来分的?有哪些是我的知识盲点需要补充的?安全控制是怎样控制的?数据库的是怎样设计的?分布式事务是怎样解决的?

2023-04-05 21:35:29 86

原创 Spring的循环依赖

构造器缓存依赖 和 set方法依赖,其中set方法依赖又分为单例set方法依赖和多例set方法依赖。

2023-03-31 09:02:39 79

原创 Spring的createBean()源码笔记

主要看doCreateBean方法()

2023-03-31 08:42:08 97

原创 springiocIOC源码笔记getBean过程

主要是从bean工厂获取指定名称的bean实例,如果获取不到,则会执行实例化,属性填充,初始化等一系列操作。主要看一下getBean的doGetbean方法。

2023-03-31 08:41:44 56

原创 spring中@Autowired注解的工作原理

Autowired注解,帮助我们根据类型匹配去自动注入。注入方式分为以下几种:1.构造方法注入2.setter方法注入3.字段注入4.类型数组/集合对象的字段或方法注入。

2023-03-30 13:59:19 522

原创 springIOC源码笔记(三)

看下剩余的fang方法吧。

2023-03-30 12:59:15 153

原创 springIO容器源码笔记(二)

上一篇分析了IOC容器的前四个方法,接下来继续看其他方法。

2023-03-30 12:32:08 240

原创 SpringIOC容器(一)

我们从ClasspathXmlApplicationContext的构造方法说起3,1:调用父类的构造方法,进行相关的对象创建工作,跟踪到父类AbstractApplicationContext,看到首先创建了一个资源式解析器PathMatchingResourcePatternResover,它是用来解析XML的,后面会用到。3.2:setConfigLocations,设置配置文件的路径,也就是将classpath:spring-config.xml设置到configLocations成员变量中,后面读

2023-03-30 10:31:00 186

原创 spring加载mybatis过程

InitialzingBean接口:实现了该接口,当bean初始化时,spring就会调用该接口的 afterPropertiesSet方法,去实现当spring初始化该bean时所需要的逻辑。前面说了实现了FactoryBean接口,所以通过getBean获取它的实例的时候就是调用getObject()方法,获取到的是sqlSessionFactory。ApplicationListener接口:实现了该接口,如果注册了该监听的话,就可以监听到Spring的一些事件,然后做相应的处理。

2023-03-29 22:34:36 484

原创 Executor执行器

Executor接口有两个实现,BaseExecutor和CachingExecutor(装饰者模式,二级缓存时候用到)。其中BaseExecutor有四个子类:1.SimpleExecutor:简单类型的执行器2.ReuseExecutor:可重用的执行器3.BatchExecutor:批量执行器4.CloseExecutor:ResultLoaderMap的内部类,用来进行处理懒加载相关功能。Executor接口采用模版方法的设计模式,定义了一些模版方法,交给子类去实现。

2023-03-29 21:32:16 463

原创 查询结果集封装流程

再来看 handResultSet方法,继续跟踪,看一下handRowValues()方法的源码,有嵌套结果集的执行if,没有嵌套的执行else。看看是怎样获取一行数据的:getRowValue方法里是通过反射获取要封装的结果集实体类的构造方法,然后调用构造器的newInstance()创建一个对象。跟踪applyAutomaticMappings,看一下是如何自动映射出来的数据到前面创建好的java对象属性中的:最主要的还是。第一步:建立数据库列名和实体类属性名称的映射关系,建立好映射关系后,

2023-03-29 20:34:44 147

原创 Mapper方法的具体执行流程分析

继续看query方法:里面的doQuery()方法,牵扯到一二级缓存的查询,具体可以看一二级缓存的博客。获取Mapper对象时,会获取到一个MapperProxyFactory工厂类,并创建一个MapperProxy代理类,在执行Mapper接口的方法时,会调用MapperProxy的invoke方法。看sqlSession.selectOne(args)方法:其实调用的还是selectList方法,然后返回list.get。sql参数获取成功后,接下来就是执行sql语句,及返回结果,

2023-03-29 16:01:47 359

原创 mapper接口的获取过程:

通过sqlSession获取mapper接口,实际上时从congiguration对象的knownMappers中获取的。之前的博客的SqlSessionFactory构建过程有讲过。

2023-03-29 15:15:47 59

原创 sqlSession的创建过程

Sqlsession是Mybatis的高级接口,类似于JDBC操作的connnection。该接口主要就是实现增删改查的,另外还有提交,回滚事务,关闭连接,获取代理类等。SqlSession是线程不安全的。每个线程都有自己唯一的SqlSession,不同线程间调用同一个SqlSession会出现问题,因此在使用完成后需要及时关闭。SqlSession是一个接口,两个子实现:1.DefaultSqlSession(默认实现)

2023-03-29 15:13:04 200

原创 配置信息的解析以及SqlSessionFactory构建过程

一.配置信息解析过程:调用SqlSessionFactoryBuilder的build()方法,利用XMLConfiguration方法里的parseConfiguration方法解析相关的配置。inputStream流是mybatis-config.xml配置对应的字节流。XMLConfigBuilder的parse()方法解析mybatis-config.xml节点得到Configuration配置类。简单总结一下这里:parseConfiguration完成是解析configuration

2023-03-29 14:36:20 562

空空如也

空空如也

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

TA关注的人

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