自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring - Controller的方法出入参不同注解时由谁解析?

Controller的方法出入参不同注解有不同的解析处理类

2023-08-24 17:19:40 73

原创 Spring - 不同的HandlerMapping解析不同请求

SimpleUrlHandlerMapping 用来处理静态文件Url访问,RequestMappingHandlerMapping解析Controller类定义的接口

2023-08-21 16:33:50 75

原创 Spring的Cache组件 - @Transactional + @CacheEvict 在同一方法上声明,删除缓存异常是否导致事务回滚?

删除缓存异常是否会导致事务被回滚,取决于事务、缓存拦截器的执行先后!而这与 @EnableTransactionManagement与@EnableCaching的声明顺序 正相关 !与ProxyCachingConfiguration、ProxyTransactionManagementConfiguration的装载执行先后 逆相关 !

2023-07-21 21:25:45 279 1

原创 分布式全局唯一主键

分布式唯一主键的选型考虑mysql表的存储、查询效率

2023-07-05 10:29:20 95

原创 长连接KeepAlive

长连接 KeepAlive

2023-03-03 14:35:34 391

原创 zookeeper选主+恢复过程 简析

zookeeper选主的日志分析

2023-02-27 11:14:05 565

原创 Linux支持的最大TCP连接数 & Socket IO 常见异常

java.net.SocketException 类型

2022-11-01 16:57:15 2036

原创 MyBatis: 批量保存实例返回主键id

MyBatis: 批量保存实例返回主键id

2022-08-01 11:48:55 3310

转载 dubbo用户文档摘选

dubbo使用文档摘选

2022-06-28 16:59:47 531

原创 final的作用-编译内联优化

JVM的JIT编译优化过程会考虑全局运行情况来内联final方法提升执行效能

2022-06-10 14:38:57 657

原创 dubbo:虽然Protocol的@SPI指定了‘dubbo’却执行先RegistryProtocol后DubboProtocol

1、Consumer默认对单一Provider维护共享的单一长连接通信客户端;通过指定@Reference的connections来one connection for one service2、通常情况下的执行先后顺序:InjvmProtocol -> RegistryProtocol -> DubboProtocol3、由@SPI指定使用接口的实现类,接口配置文件里也会申明它的wrapper,在创建实例时裹在外层。ProtocolFilterWrapper创建Invoker的FilterChain.

2022-06-08 18:54:50 778

原创 JDK原生java.net.HttpURLConnection & Apache提供的通信池化客户端org.apache.http.impl.client.CloseableHttpClient

一文搞懂 JDK原生HttpURLConnection 和 Apache提供的通信池化客户端.CloseableHttpClient!

2022-06-02 16:22:03 3267

原创 Cpu性能分析指令 - top、vmstat、pidstat...

Linux排查指令

2022-05-25 17:03:07 1601

原创 Cpu高速缓存 & 缓存行填充

Cpu密集型 &IO密集型Cpu密集型也叫计算密集型:在系统运行期间,性能瓶颈主要在Cpu,此时Cpu高负载或高使用率。通常在加解密等大量复杂运算场景。 IO密集型:此时性能瓶颈受限制于硬盘/内存的IO读写,没有充分利用Cpu能力。此时线程的空闲时间多,可以适当提高线程数。IO密集型核心线程数 = Cpu核数 / (1- 阻塞系数)Cpu密集型核心线程数 = Cpu核数阻塞系数 = Cpu等待时间 : Cpu总时间 , 通常会设定: "等待时间 : 运行时间 = 1 ...

2022-05-25 11:20:47 986

原创 shardingJdbc源码简析:分片、归并 & jdbc的流式查询

shardingJdbc源码简析:分片、归并 & jdbc的流式查询

2022-05-19 16:15:17 1979

原创 Java8 Lambda - groupingBy 后再排序、累加、计数、查找...

java8 groupingBy的Lambda写法

2022-05-10 10:54:00 3072

原创 MultipartFile文件上传 (2) - DispatcherServlet#doDispatch 如何处理Multipart请求

SpringMVC 处理Multipart请求

2022-04-11 15:43:05 1659

原创 MultipartFile文件上传 (1) - Controller同时处理文件流和附加入参示例

MultipartFile文件上传

2022-04-11 10:34:40 5004

原创 ShardingJdbc简述 & 分布式主键的方式

shardingJdbc

2022-04-06 17:08:45 1474

原创 JDK Concurrent包组件概解(5) - BlockingQueue

BlockingQueue

2021-09-07 15:48:46 140

原创 JDK Concurrent包组件概解(4)- ScheduledThreadPoolExecutor & Timer

两者都是用来延时或定时执行任务的,在实现上它两的设计思路是相似的,细节上略有差异。相同一、都有一个可变数组队列来保存任务对象。当队列元素发生入队、出队时,都会按“nextExecutionTime” 进行堆排序来保证队首元素的延时是最少的。队列内元素不保证全局严格有序,但对于树结构上的一个三元组<left,parent,right> 里而言, parent一定是最小的。<结构是( n, 2n, 2n+1)>插入到队尾时 fixUp: 循环向上与三元组的parent比对

2021-09-02 16:01:30 172

原创 JDK Concurrent包组件概解(3)- ThreadPoolExecutor

目录ThreadPoolExecutorFutureTaskThreadPoolExecutor线程池创建时,需要指定的参数有:corePoolSize 核心线程数 maximumPoolSize 最大线程数 keepAliveTime + unit 超过核心线程数的临时线程持续时间 BlockingQueue 阻塞队列,保证并发读写安全 ThreadFactory 创建Worker工作线程的工厂类 Rejecte...

2021-08-19 16:52:55 107

原创 JDK Concurrent包组件概解(2)- 无锁并发的核心AbstractQueuedSynchronizer

AbstractQueuedSynchronizer通过内部类Node来维护等待权限线程的双向链。 static final class Node { /** Marker to indicate a node is waiting in shared mode */ static final Node SHARED = new Node(); /** Marker to indicate a node is waiting in exclu

2021-08-17 22:06:01 218

原创 JDK Concurrent包组件概解 (1)- 并发组件底层原理sun.misc.Unsafe

sun.misc.Unsafe

2021-08-16 11:53:50 209

空空如也

空空如也

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

TA关注的人

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