- 博客(18)
- 收藏
- 关注
原创 【查缺补漏】利用eureka的OUT_OF_SERVICE做平滑发版
问题描述集群部署,服务之间的调用是采取以 Ribbon 为基础的客户端负载均衡策略,客户端的服务列表是定时(默认 30s )从 Eureka Server 拉取。在发版重启集群中的某一个实例时,客户端无法及时同步到 Eureka Server 最新的注册列表,导致服务调用可能被负载到正在重启的实例,从而出现异常情况,会对业务系统产生影响。解决方案Eureka 支持使用 OUT_OF_SERVICE 状态来关闭某一实例的流量,发版时,先关闭该实例的流量;然后依赖 Eureka Client 定时拉取机制
2021-07-05 16:04:24
3597
原创 【Java集合源码】HashMap
HashMap文章目录HashMap一、构造函数二、put()三、hash 算法四、头查法和尾插法//默认大小 16DEFAULT_INITIAL_CAPACITY:1<<4//默认扩容因子 0.75DEFAULT_LOAD_FACTOR:0.75f//扩容阈值= (capacity * load factor)int threshold一、构造函数无参:public HashMap() { this.loadFactor = DEFAULT_LOAD_F
2020-08-30 19:59:12
280
原创 【Java多线程】线程的几种状态与流转关系
线程的几种状态与流转关系一、线程的状态二、线程状态流转关系一、线程的状态线程的状态可以通过 Thread 类中的 state 内部类查看,有以下几个状态:新建(New):创建后尚未启动的线程状态运行(Runnable):包含 Running(位于可运行线程池中)和 Ready(位于线程池中等待调度选中获取CPU使用权)无限期等待(Waiting):不会被分配CPU执行时间,需要显式唤醒...
2019-09-06 14:38:18
1053
原创 【Java多线程】多线程实现的四种方式
多线程实现的四种方式一、继承Thread类,重写run方法二、实现Runnable接口,重写run方法三、通过Callable和FutureTask创建线程四、通过线程池创建线程多线程实现的方式有很多,本文只针对常见的四种方式。一、继承Thread类,重写run方法该方式无返回值,方式如下:public class MyThread extends Thread{ private ...
2019-09-05 16:49:12
219
原创 【查缺补漏】finalize方法与GC
finalize方法与GC一、finalize()的作用二、finalize()的执行过程一、finalize()的作用finalize() 是 Object 的 protected 方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize() 与 C++ 中的析构函数不是对应的。C++ 中的析构函数调用的时机是确定的(对象离开作用域或 delete 掉),...
2019-09-03 17:26:32
308
原创 【JVM相关】垃圾收集器
垃圾收集器一、垃圾收集器种类(流行)二、年轻代垃圾收集器三、老年代垃圾收集器四、G1收集器一、垃圾收集器种类(流行)二、年轻代垃圾收集器Serial 收集器(-XX:+UseSerialGC,复制算法)单线程收集,进行垃圾收集时,必须暂停所有工作线程简单高效,JVM Client 模式下默认的年轻代收集器ParNew 收集器(-XX:+UseParNewGc,复制算法)多...
2019-09-03 15:59:56
127
原创 【Linux相关】五大IO模型
本文的背景是Linux环境下的network IO。五大IO模型一、同步阻塞IO(blocking I/O)二、同步非阻塞IO(noblocking I/O)三、多路复用IO(IO multiplexing)四、信号驱动IO(signal blocking I/O)五、异步IO(Asynchronous I/O)当 IO 发生时涉及的对象和步骤:对于一个网络 IO 它会涉及到两个系统对象,一...
2019-08-26 14:09:03
305
原创 【中间件】Liquibase基础实践
Liquibase基础实践一、What liquibase二、Why liquibase三、How liquibase四、springboot + liquibase五、gradle + liquibase插件六、跨库迁移七、跨数据库类型迁移一、What liquibaseLiquiBase 是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将...
2019-06-11 11:10:18
1154
原创 【查漏补缺】double-checked locking引发的静态内部类加载过程
【查漏补缺】double-checked locking引发的静态内部类加载过程一、单例模式二、多线程下的单例模式参考文章:深刻理解双重检查锁定(double-checked locking)与单例模式最近在解决项目中通过 fortify 扫描出的一些 bug,遇到了双重检查锁定(double-checked locking)的问题,在学习解决中引发到了单例的实现以及静态内部类加载过程的问题,...
2019-03-21 16:11:53
411
原创 【Java集合源码】LinkedList
【Java集合源码】LinkedListLinkedList简介LinkedList内部结构LinkedList注释解析LinkedList构造函数本文参考 JDK 版本为1.8参考文章:https://github.com/Snailclimb/JavaGuide/blob/master/Java相关/LinkedList.mdLinkedList简介LinkedList是一种可以在...
2019-01-21 18:07:49
214
1
原创 【Java集合源码】ArrayList
【Java集合源码】ArrayListArrayList 简介ArrayList 常量ArrayList 构造方法ArrayList 扩容机制System.arraycopy() 和 Arrays.copyOf() 方法ensureCapacity() 方法本文参考 JDK 版本为1.8参考文章:https://github.com/Snailclimb/JavaGuide/blob/mas...
2018-12-03 16:56:49
306
原创 【Java集合源码】写在前面的适配器模式
最近开始阅读Java集合的源码,但首先被下面这张图困惑了:可以看到,ArrayList继承了抽象类AbstractList,AbstractList又继承了AbstractCollection类且实现了List接口。好奇,为什么需要这两个抽象类,不过在此之前需要先弄清两个概念:抽象类、接口抽象类:在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没...
2018-12-02 21:44:44
349
2
原创 【第三方API】顺丰电子面单SDK调用总结-java
一、获得顺丰电子面单SDK https://qiao.sf-express.com/index.html 丰桥系统中,文档中心->SDK使用说明->运单自助打印SDK 顺丰电子面单SDK-1.0.3 支持的开发环境: Java sdk 支持1.8及以上二、启动SDK本地服务: 1.windows环境: ①将csim_waybi...
2018-04-14 14:19:49
13310
8
原创 【第三方API】顺丰API调用总结-java
一、获取顾客编码及校验码 https://qiao.sf-express.com/index.html 丰桥系统中申请api接口,获得url(调用地址)、clientCode(顾客编码)、checkword(校验码)。 url:http://bsp-oisp.sf-express.com/bsp-oisp/sfexpressService二、XML报文说明 1.请求...
2018-04-14 14:04:17
25477
31
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人