自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【NoHttpResponseException】问题分析--HttpClient(InternalHttpClient)

项目场景: 在A服务中通过自己实现的HttpClient请求B服务,偶尔出现NoHttpResponseException : failed to respond url: http://B-host:port/xxx QPS: 100 - 700 A服务ClientConfig参数(本次需要关注的): AsyncHttpClientConfig.maxConnections: 500 AsyncHttpClientConfig.maxConnectionsPerHost: 500 AsyncHttpCli

2022-04-18 17:15:05 2075

原创 手绘 ✍︎ 一致性hash算法原理

一致性hash算法为什么需要一致性hash算法一致性hash算法一致性hash算法增强(添加虚拟节点) 为什么需要一致性hash算法 有时候由于数据量太大,一个数据库的容量不能满足我们的需求 就需要多个数据库存储数据,这样读写前我们需要先确定应该操作哪一个数据库 如下图,我们想将一批数据放入到8个数据库中。可以将数据ID跟8做求模运算,根据得到的值选择对应的数据库,这样读写都可以这样选择一个数据库操作(有时候不一定是根据ID或ID非数值又或其他原因,一般会使用其hash值来做求模运算) 存在的问题:

2021-02-03 14:24:34 320

原创 Mysql之innodb浅析

Mysql之innodb浅析Mysql之innodb浅析基本描述数据结构事物隔离级别Read Uncommitted(读取未提交内容)Read Committed(读取提交内容)Repeatable Read(可重读)Serializable(可串行化)锁当前读快照读MVCC(多版本并发控制) Mysql之innodb浅析 基本描述 Mysql的数据库引擎之一,目前是默认存储引擎 区别于ISAM和MyISAM,最大的特色是支持ACID兼容的事物功能 事务管理(ACID) 原子性(Atomicit

2020-11-11 17:46:03 251

原创 5种网络IO模型简析

网络IO模型网络IO模型基础描述阻塞IO(bloking IO -- BIO)非阻塞IO(non-blocking IO -- NIO)多路复用IO(multiplexing IO)selectpollepollepoll_create()epoll_ctl()两种模式信号驱动式IO(signal-driven IO)异步IO(asynchronous IO -- AIO)各类IO比较 网络IO模型 基础描述 IO:一般指访问磁盘数据,分为两个步骤; 以read操作为例,第一步是等待数据阶段,数据放入系统

2020-11-11 17:37:15 331

原创 HTTP三次握手四次挥手过程(清晰梳理)

HTTP三次握手四次挥手过程HTTP三次握手四次挥手过程基本描述工作流程建立连接-TCP三次握手为什么三次握手断开连接-TCP四次挥手为什么四次挥手 HTTP三次握手四次挥手过程 基本描述 http协议全称:HyperText Transfer Protocol,超文本传输协议;用于服务传输超文本到本地浏览器的传送协议 应用层协议、C/S模型、无状态 通常承载与TCP协议层上,有时也承载与TLS或SSL协议层上,此时成了https [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(i

2020-11-11 17:32:11 1401

原创 volatile关键字解析(阅后即粉)

volatile关键字解析volatile关键字解析基本描述内存可见性禁止指令重排 volatile关键字解析 基本描述 volatile用来修饰变量,保证内存可见性及禁止指令重排 volatile并不能保证原子性,比如i++是3步指令,只有完成3步时才会写入主存,所以并发时会有问题 内存可见性 缓存一致性问题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2337Jf6o-1605086788107)(./系统内存关系.png)] 多核处理器涉及到同一共享内存时,

2020-11-11 17:28:50 177

原创 发布项目到maven中央仓库(Mac环境)

安装gpg并生成秘钥 安装命令 brew install gpg ,预计10分钟左右 生成秘钥命令 gpg --gen-key,输入姓名、邮箱、保护密码(需要记住) 查看秘钥 gpg --list-keys 发布秘钥 需要发布两个服务器 gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 秘钥值 gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 秘钥值 验证秘钥是否

2020-10-15 17:23:42 620

原创 浅谈3种动态代理

浅谈JDK动态代理与CGLIB动态代理的区别JDK动态代理CGLIB动态代理 JDK动态代理 代理类实现InvocationHandler接口 通过反射实现 被代理类必须实现某个接口 代码示例: // ------------- 代理类 ------------- import lombok.extern.slf4j.Slf4j; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import j

2020-08-26 18:06:03 222

原创 线程池-ThreadPoolExecutor使用总结

ThreadPoolExecutor使用总结流程图构造参数corePoolSizemaximumPoolSizekeepAliveTimeunitworkQueuethreadFactoryhandler 流程图 构造参数 corePoolSize 核心线程数: 默认情况下,核心线程即使空闲也不会被销毁 添加新任务时,如果总工作线程数小于corePoolSize,无论当前工作线程是否空闲,都会直接创建新线程 添加新任务时,如果总工作线程数大于或等于corePoolSize,任务添加到工作队列 ma

2020-08-19 17:17:27 258

原创 为什么阿里巴巴代码规范不允许for循环里使用add/remove方法

为什么阿里巴巴代码规范不允许for循环里使用add/remove方法 主要是remove方法,add方法在for循环内使用不当可能会死循环 不要在foreach循环里进行元素的remove/add操作,remove元素请使用Iterator方式。 Negative example: List<String> originList = new ArrayList<String>(); originList.add("22"); for (String ite

2020-08-14 19:07:24 476

原创 synchronized原理分析笔记

synchronized原理使用场景锁的升级(膨胀)对象头的操作 使用场景 使用场景分为两种,一种是用于类,一种是用于对象; 类: 修饰静态方法、同步块指向类;修饰方法指向当前类,同步块指向指定的类 对象: 修饰非静态方法、同步块指向对象;修饰方法指向当前实例,同步块指向指定的对象 每个对象和类都有自己独立的监听器Monitor,jvm用Monitor实现Lock;比如HashTable.class 有一个Monitor,每个new HashTable() 也有自己Monitor; 监听器Monitor

2020-06-30 11:51:58 212

原创 你确定String是不可变的?

有一次面试被问到 String对象不可被改变么? 仔细一想是可变,然后研究了下发现了String的神奇之处! 不可变的String 众所周知String被设计为不可变 类被final修饰,不可被继承; 内部由一个char数组实现,由于该变量被final修饰所以保证了其长度不可变 String没有提供任何修改char数组内容的方法,保证了内容不可被修改 改变String值 想必有些人已经想到了,通过反射拿到char数组对象然后修改其值 String str = "123"; Field field =.

2020-06-08 11:48:27 279

原创 单例模式-各种实现总结

单例模式-学习总结饿汉式直接赋值静态块赋值懒汉式简单版double check(双重校验)内部类 饿汉式 饿汉式是最简单最直接的,在单例数量较少的应用里推荐使用这种方式。 优点: 线程安全 缺点: 类加载时就初始化,耗费不必要的资源 直接赋值 public class HungrySingleton { private static final HungrySingleton INSTAN...

2019-10-28 18:10:05 212

原创 JAVA集合map、list、set详解

Map中常用的5个集合 HashMap LinkedHashMap HashTable ConcurrentHashMap TreeMap List中常用的3个集合 ArrayList LinkedList Vector Set中常用的3个集合 HashSet LinkedHashSet TreeSet CopyOnWriteArraySet 使用总结 线程安全 效率高 有顺序 Map中常用的5个集

2017-11-03 09:52:21 499

JAVA集合map、list、set详解

详细描述map、list、set的常用子类特性,各个场景的适用。

2017-11-03

空空如也

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

TA关注的人

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