自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xyjy11的博客

欣宇小小白的博客

  • 博客(98)
  • 收藏
  • 关注

原创 Mysql MHA搭建

Mysql MHA搭建过程记录

2023-02-17 10:19:25 1024

原创 Mysql双主整理

双主

2022-12-15 17:25:20 1784

原创 Redis整理-未完成

redis整理

2022-12-15 17:00:23 1607

原创 CVE-2022-40664 ShiroFilter1.7和1.10对于forward请求的处理

shiroFilter拦截forward、include请求

2022-10-14 17:08:52 4435

原创 Ribbon自定义配置--RibbonClientSpecification

ribbon自定义配置

2022-08-26 00:11:17 1445

原创 application.properties和bootstrap.properties的加载时机

application.properties和bootstrap.properties的加载时机

2022-08-23 11:12:50 1635

原创 SpringBoot Actuator监控组件笔记

SpringBoot Actuator监控组件记录

2022-08-17 22:41:09 3357

原创 RocketMQ源码阅读(十五)事务消息

事务消息实现笔记

2022-08-16 01:25:27 541

原创 RocketMQ源码阅读(十四)延迟消息

当消息写入到Broker后,需要等待指定的时长后才可被消费处理的消息,称为延时消息,本文记录延迟消息在RocketMQ的实现

2022-08-14 00:25:47 905

原创 RocketMQ源码阅读(十三)Consumer-消息消费

Consumer-消息消费

2022-08-09 20:00:59 814

原创 RocketMQ源码阅读(十二)Consumer-消息拉取

消费端消息拉取的源码注释

2022-08-09 14:44:57 272

原创 RocketMQ源码阅读(十一)AllocateMessageQueueConsistentHash一致性hash

AllocateMessageQueueConsistentHash

2022-08-08 23:21:55 442

原创 RocketMQ源码阅读(十)Consumer-消息队列负载均衡

简要流程

2022-08-08 19:03:15 414

原创 RocketMQ源码阅读(九)DefaultMQProducer消息发送

RocketMQ.Producer同步消息发送代码笔记

2022-08-03 23:42:02 1712

原创 RocketMQ源码阅读(七)ConsumeQueue和IndexFile

消费队列和索引文件

2022-06-22 17:24:43 586

原创 RocketMQ源码阅读(六)CommitLog

commitLog

2022-06-22 10:11:18 377

原创 RocketMQ源码阅读(五)MappedFileQueue

mappedFileQueue

2022-06-22 10:10:36 359

原创 RocketMQ源码阅读(四)MappedFile

mappedFile

2022-06-22 10:09:53 392

原创 RocketMQ源码阅读(三)NamesrvStartup

NameSrv的启动和broker注册请求处理

2022-06-15 15:32:48 499

原创 synchronized锁膨胀笔记

synchronized

2022-05-03 16:27:29 358

原创 CGLIB分析

cglib代理类分析

2022-04-23 16:47:05 857 1

原创 Spring三级缓存解决循环依赖

对于没有循环依赖的场景下的bean创建过程如下,直接看核心代码(隐掉了部分循环依赖的代码) protected <T> T doGetBean( String name, @Nullable Class<T> requiredType, @Nullable Object[] args, boolean typeCheckOnly) throws BeansException { // 分别从三级缓存中查询是否已经有该bean Object sh.

2022-04-17 01:59:54 658

原创 SpringMVC源码笔记(三) DispatcherServlet.service

DispatcherServlet.service()

2022-03-13 21:21:46 1146

原创 SpringMVC源码笔记(二) HandlerExceptionResolver

HandlerExceptionResolver

2022-03-06 18:36:47 1689

原创 SpringMVC源码笔记(一) DispatcherServlet.init

SpringMVC的核心就是DispatcherServlet,本质还是一个Servlet,用于分发HTTP请求,调用相应的Handler处理请求。Servlet的生命周期是初始化init(),处理请求service(),销毁destroy(),挨个学习之

2022-03-03 00:12:58 618

原创 分布式事务解决方案简述

分布式事务常用解决思路有2PC、3PC、TCC、saga、消息等目录2PC2PC参考实现3PCTCCTCC参考实现SAGA实现saga事务的两种思路消息事务2PC两阶段提交,引入一个第三方协调者来管理整个分布式事务,各系统本地事务为参与者。将分布式事务分为两个阶段,一阶段Prepare,二阶段Commit/Rollback。一阶段执行各参与者的本地事务,执行完后向协调者反馈执行成功/失败情况,但事务不提交。协调者判断若所有反馈都是成功,会进入二阶段向所有参

2021-12-29 22:49:09 564

原创 Tomcat源码笔记(七)Engine

StandardEngine

2021-12-27 00:02:00 692

原创 Tomcat源码笔记(八)Context

StandardContext的启动步骤

2021-12-27 00:00:18 1099

原创 RedisTemplate.execute执行lua脚本踩坑记录

一波三折目录EvalSha is not supported in cluster environmentNo way to dispatch this command to Redis Cluster because keys have different slotsJedis does not support password protected Redis Cluster configurations!背景:最近项目新引入redis,代码中为了保证redis原子操作,大部分操作

2021-09-27 17:06:56 12272

原创 怎样实现Redis分布式锁

对于某个JVM进程,要保证某个操作的唯一执行,可以使用synchronized关键字或ReentrantLock在执行前加锁,对于多个JVM进程,要保证这个操作在多个进程中的唯一执行,那就需要依赖第三方系统,例如DB,for update nowait等,除此之外,还可以借助redis、zookeeper实现分布式锁。Redis锁实现思路业务操作会有编号m,线程1往redis中set一个key是m的数据,表示m操作已经加锁,别的线程判断如果redis中已经有了key为m的数据,不再执行操作,

2021-09-19 18:04:26 520

原创 ScheduledThreadPoolExecutor源码跟踪分析

JDK版本1.6目录Demo代码示例ScheduledThreadPoolExecutor源码分析PriorityQueueofferpollDelayQueuetakepollofferScheduledThreadPoolExecutorScheduledFutureTaskDemo代码示例示例了三种调度定时任务的apipublic class Main{ static ScheduledThreadPoolExecutor ...

2021-09-18 23:24:22 191

原创 Tomcat源码笔记(五)Connector

Connector

2021-09-05 11:03:17 229

原创 Tomcat源码笔记(六)Connector--Endpoint

Endpoint端点,在Tomcat中也就是接收socket连接和处理连接的地(ServerSocket.accept())。AbstractEndpoint声明了三个组件,Accepter,SocketProcessor,以及一个Handler接口。Accepter 顾名思义,ServerSocket.accept()接收socket连接 SocketProcessor 模板方法,子类实现具体的SocketProcessor类,处理接收到的socket,SocketProcessor处...

2021-09-05 11:02:40 437

原创 Tomcat源码笔记(四)StandardService

上节看了容器的初始化和启动,知道了Tomcat初始化和启动都是由Server.init(),Server.start(),层层向下依次触发各个组件的initInternal(),startInternal()方法进行初始化和启动,从本片开始,就从各组件的初始化和启动开始读源码。本文的Service实现类是StandardService,内部从配置文件中看到,内部是多个Connector和一个Engine组成,来看代码initInternal() / startInternal()就是调用各子

2021-09-05 11:01:48 1068

原创 TCP、TLS\SSL、JSSE、HTTPS杂烩笔记

以目前我的理解以及这两天的各种百度写个总结笔记,有不对的请指正TCP简介全名Transmission Control Protocol,传输控制协议,是网络层IP协议和链路层Ethernet协议之上,Ethernet协议实现链路层的数据传输和地址封装(源方和目标方的MAC地址),解决局域网的点对点通信,而不同局域网之间的两台机子则需要IP协议进行地址的路由中转,TCP则面向的是端口到端口,保证数据传输的完整和可靠,包括数据包的确认、失败重发、流量控制,数据量大的情况TCP会将数据拆分为有

2021-09-04 13:55:47 2033 1

原创 负载均衡超时重发HTTP请求

nginx失败重试的测试

2021-08-27 23:33:45 1579 2

原创 Tomcat源码笔记(三)容器初始化和启动

上节看到bootstrap.java 在启动时调用了Catalina.load 和 Catallina.start方法if (command.equals("start")) { daemon.setAwait(true); daemon.load(args); daemon.start(); if (null == daemon.getServer()) { System.exit(1);}load()内部大致为解析conf/server.xml文件并初

2021-07-11 12:43:31 346 1

原创 Java序列化Serializable源码

Java序列化Serializable 示例分析和源码跟踪

2021-07-06 22:54:09 467 1

原创 JDK动态代理源码跟踪

写了个简单的JDK动态代理Demo,在IDEA Debug执行时发现了新大陆,特此记录一下Demo代码如下public interface MyInterface { void print();}public class MyClass implements MyInterface { @Override public void print() { System.out.println("主方法啦啦啦啦啦"); }}public cla

2021-06-30 15:56:27 168

原创 JVM笔记(六)堆外内存导致OOM

在垃圾回收时,对于Direct Memory虚拟机虽然会执行回收,但是不受JVM直接管理,不能发现空间不足了就通知收集器回收,而是等待FullGC时,JVM会顺带清除直接内存的废弃对象。

2021-06-20 19:13:01 997 1

空空如也

空空如也

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

TA关注的人

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