自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 http请求超时,tcp未正常四次挥手

目录背景问题复现代码背景一个很简单的需求,需要对controller层返回的异常报文,做简单的包装,比如将 异常、error、exception等关键字去掉(由于历史代码 各种异常提示不友好,而c端直接把提示弹出),替换成更友好的提示。方案一在Filter里面把response拿到,读取内容,然后替换。方案二使用ResponseBodyAdvice,对返回的报文做处理最终使用了方案二,更简单。一开始用方案一的时候,就遇到http请求超时,tcp未正常四次挥手断连。问题复现代码采用

2021-08-08 15:25:24 694

原创 Tomcat知识点深入原理解析

目录Filter的执行原理Filter的执行原理org.apache.catalina.core.ApplicationFilterChain#doFilter==>org.apache.catalina.core.ApplicationFilterChain#internalDoFilter==>javax.servlet.Servlet#service(最后可以看到调用...

2020-07-20 23:12:33 146

原创 docker-compose搭建Kafka集群,并应用代码

docker-compose.yml配置文件version: '2'# 以下192.168.0.103为docker所在宿主机,临时ipservices: zoo1: image: wurstmeister/zookeeper restart: unless-stopped hostname: zoo1 ports: - "2181:2181"...

2020-03-21 18:14:10 1379

原创 docker搭建redis-cluster,并整合到spring-data-redis

目录环境搭建redis集群1、拉取redis镜像2、配置集群容器数据卷3、启动redis集群服务4、验证集群服务环境Mac系统,正常按照官方文档安装docker,这里集群是在一台电脑上模拟搭建redis集群1、拉取redis镜像docker pull redis2、配置集群容器数据卷2.1 创建本地路径#路径可自定义,如果自定义路径,后面用到此路径的命令也需要修改mkdir -...

2020-03-20 22:50:07 382

原创 docker搭建redis主从复制、sentinel监控、整合到应用代码

目录搭建主从复制配置文件启动主从服务验证主从复制搭建主从复制这里用docker启动三个redis服务,在一台Mac机器上(临时IP为192.168.0.103),分别为redis-master(端口6379),redis-slave1(端口6388),redis-slave2(端口6399)配置文件配置本地的配置文件,用于docker运行配置文件挂载。redis-master配置文件如下...

2020-03-20 21:39:34 178

原创 记一次线上线程数量激增 问题定位

目录现象问题定位现象收到告警提醒,❌❌系统线程数过大(超过了2000)问题定位工具: jvisualvm第一步: jvisualvm连上❌❌系统,发现大量线程处于WAITING状态,表示线程进入了等待队列,等待被唤醒。那就thread dump下看看。第二步: 分析thread dump文件(thread dump在线分析)。发现有1911个wating thread,并且线程名称都是...

2020-03-03 22:49:08 795

原创 从Docker简单部署到jvm高cpu问题演练

目录演练代码打jar包docker部署编写Dockfile创建镜像生成容器并运行jvm中cpu问题定位参考演练代码public class ThreadCpuTest { public static void main(String[] args) { Executor executor = Executors.newFixedThreadPool(5); ...

2020-02-13 00:15:25 358

原创 分布式事务框架tcc_transaction第二篇——执行流程,源码详解

目录

2020-02-05 14:56:49 859

原创 分布式事务框架tcc_transaction第一篇——使用(RestTemplate模式)

目录如何集成spring boot如何集成spring boot官方使用文档官方未集成spring boot,先改将tcc-transaction-spring改造成兼容spring-boot。主要引入了:TccTransactionAutoConfiguration、ScheduleConfiguration...

2020-02-05 13:53:48 1800 2

原创 Zookeeper分布式锁InterProcessMutex源码解析

目录使用方式基本原理源码解析InterProcessMutex初始化acquire方法使用方式用一下别人的图基本原理客户端在获取zookeeper分布式锁的时候,实际上是通过在节点下,添加临时顺序节点(CreateMode.EPHEMERAL_SEQUENTIAL)。如果当前节点通过"lock-"后面的序号排序是第一个,那么久可以获取到锁源码解析InterProcessMutex初...

2020-01-05 23:18:23 462

原创 Mybatis源码串解:从初始化到执行

基于springBoot下的mybatis初始化 我们在用mybatis进行数据库交互时,实际上写得那些dao接口(mapperInterface),最终实现类都是mapperProxy代理类,由mapperProxy隐藏了底层与数据交互的细节。(这个就属于具体的sql执行流程了)...

2019-08-03 13:23:01 306

原创 spring mvc

初始化spring boot下初始化配置类:org.springframework.boot.autoconfigure.web.WebMvcAutoConfigurationspring boot 初始化时会扫描META-INF/spring.factories配置文件中配置的类,进行初始化关注一下几个初始化类: @Bean @Override public Request...

2019-07-23 14:30:46 149

原创 Mysql锁点滴记录

官方介绍:https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html比较好的博客:https://www.cnblogs.com/rjzheng/p/9950951.html意向锁意向锁是表级锁,分为IX 和 IS① An intention shared lock (IS) indicates that a transactio...

2019-05-27 22:30:48 143

原创 ThreadLocalMap

ThreadLocalHashMap底层存储实际是一个数组 /** * The table, resized as necessary. * table.length MUST always be a power of two. */ private Entry[] table;看一下set方法/** ...

2019-05-25 23:08:27 387

原创 spring事务源码学习

spring事务调用入口:org.springframework.transaction.interceptor.TransactionAspectSupport#invokeWithinTransaction

2019-05-25 21:11:09 219

原创 ConcurrentHashMap 源码学习总结

先截取一下源码注释中几个关键点:①这里强调:插入第一个元素不需要锁,只是CAS,其它的(insert,delete, and replace)需要锁,为了节省空间,直接锁住每个hash对应链表的头节点,通过synchronized的方法 /* Insertion (via put or its variants) of the first node in an * empty bin...

2019-05-11 21:00:35 109

原创 堆排序、最大堆、最小堆(精简代码)

直接拿了维基百科的代码,这个是比较精简也比较清晰得:https://zh.wikipedia.org/zh/堆排序import java.util.Arrays;public class HeapSort { private int[] arr; public HeapSort(int[] arr) { this.arr = arr; } /...

2019-04-06 20:26:00 895 1

原创 HashMap红黑树

转化为红黑树这个大佬讲的非常清晰,拜上地址:https://www.cnblogs.com/nullllun/p/8214599.html#autoid-3-2-0简单看一下HashMap的java.util.HashMap.TreeNode#balanceInsertion就是对应上文链接中的几种插入情形,源码:static <K,V> TreeNode<K,V> ...

2019-04-02 23:23:11 225

原创 SpringMvc 异步响应调用链源码追踪

主要流转类:org.springframework.web.context.request.async.WebAsyncManagerorg.springframework.web.context.request.async.WebAsyncManager#startCallableProcessing(org.springframework.web.context.request.async....

2019-04-02 14:25:56 682

原创 HashMap----resize()扩容解析

源码晾出来/** * Initializes or doubles table size. If null, allocates in * accord with initial capacity target held in field threshold. * Otherwise, because we are using power-of-two expan...

2019-03-21 11:15:52 253

原创 spring cloud 源码追踪

spring cloud 总结EurekaribbonEureka客户端配置属性:EurekaClientConfigBean(心跳的时间,初始化相关线程,是否需要和eurekaserver沟通)配置初始化:EurekaClientAutoConfigurationeureka启动的springboot类上要加上@EnableDiscoveryClientcom.netflix....

2019-03-04 19:16:21 402

原创 spring cloud ribbon高并发404

spring ribbon高并发情况下,会出现404请求。原因是引入spring retry重试机制,在实际调用请求的时候,是通过RetryLoadBalancerInterceptor中intercept方法,项目由于多系统交互,会有多个RestTemplate, 却共用一个RetryLoadBalancerInterceptor,高并发的情况下,在setRetryPolicy的时候重试机制会...

2019-01-15 22:32:05 1979

高性能mysql第三版

高性能mysql第三版,详细介绍mysql基本原理及优化方案

2018-10-01

空空如也

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

TA关注的人

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