【周刊】 JDK1.7中HashMap死环问题及JDK1.8中对HashMap的优...

一、JDK1.7中HashMap扩容死锁问题我们首先来看一下JDK1.7中put方法的源码我们打开addEntry方法如下,它会判断数组当前容量是否已经超过的阈值,例如假设当前的数组容量是16,加载因子为0.75,即超过了12,并且刚好要插入的索引处有元素,这时候就需要进行扩容操作,可以看到resize扩容大小是原数组的两倍,仍然符合数组的长度是2的指数次幂我们再进入resize方法如下,它首先会对...

【周刊】 Dubbo应用服务迁移到Kubernetes集成方案

Dubbo应用迁移到docker的问题Dubbo是阿里开源的一套服务治理与rpc框架,服务的提供者通过zookeeper把自己的服务发布上去,然后服务调用方通过zk获取服务的ip和端口,dubbo客户端通过自己的软负载功能自动选择服务提供者并调用,整个过程牵涉到的三方关系如下图所示。在正常的情况下,这三方都在同一个互通的网段,provider提供给zk的就是获取到的本机地址,consumer能访问到...

Node.js

SQL 发展历史和原理讲解

11 0

从1986年的第一个版本SQL-86,到最近的SQL:2016版本,已经有各种SQL的标准版本被引入。它在1986年被美国国家标准协会ANSI和1987年被国际标准化组织ISO接受为关系数据定义和操作的标准。请注意,每个关系数据库供应商都提供了自己的SQL实现也称为SQL方言,在该实现中,通常会实现...

阅读全文
MySQL

mysqldump命令 --single-transaction 参数的作用

15 0

--single-transaction 参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,在这期间不会锁...

阅读全文