一、JDK1.7中HashMap扩容死锁问题我们首先来看一下JDK1.7中put方法的源码我们打开addEntry方法如下,它会判断数组当前容量是否已经超过的阈值,例如假设当前的数组容量是16,加载因子为0.75,即超过了12,并且刚好要插入的索引处有元素,这时候就需要进行扩容操作,可以看到resize扩容大小是原数组的两倍,仍然符合数组的长度是2的指数次幂我们再进入resize方法如下,它首先会对...
Dubbo应用迁移到docker的问题Dubbo是阿里开源的一套服务治理与rpc框架,服务的提供者通过zookeeper把自己的服务发布上去,然后服务调用方通过zk获取服务的ip和端口,dubbo客户端通过自己的软负载功能自动选择服务提供者并调用,整个过程牵涉到的三方关系如下图所示。在正常的情况下,这三方都在同一个互通的网段,provider提供给zk的就是获取到的本机地址,consumer能访问到...
2019-12-06
15
Spring Boot的核心功能与使用优点?核心功能:1)Spring Boot项目为独立运行的spring项目,java -jar xx.jar即可运行。2)内嵌servlet容器(可以选择内嵌: tomcat,jetty等服务器)。3)提供了starter的pom配置简化了maven的配置。4)...
阅读全文
2019-12-06
19
Spring Boot 需要独立的容器运行吗?可以不需要,内置了 Tomcat Jetty 等容器。通过pom.xml中导入依赖:!--spring-boot-starter-web:代表web模块,在这个模块中含了许多JAR包,--
!--有spring相关的jar,内置tomcat服务器,jac...
阅读全文
2019-12-04
6
!--批量插入数据--
insertid=insertUsersByBatchparameterType=java.util.List
insertignoreintoxxxtable
userId,
userName,
sex
values
foreachcollection=listitem=...
阅读全文
2019-12-03
5
--single-transaction 参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,在这期间不会锁...
阅读全文
2019-11-17
23
Java消息服务(Java Message Service ,JMS)是一个Java标准,定义了使用消息代理的通用API 。在JMS出现之前,每个消息代理都有私有的API,这就使得不同代理之间的消息代码很难通用。但是借助JMS,所有遵从规范的实现都使用通用的接口,这就类似于JDBC为数据库操作提供了...
阅读全文
2019-11-17
41
在MQ中,消息模型有两种,一种是队列(Queue),一种是主题(Topic)。队列是Point-To-Point的,队列中的消息,仅能被消费一次。主题是PubSub模型,主题中的消息,可以由多个订阅者消费;订阅者只能消费它订阅以后的消息。这是遵循的JMS规范。1.1 收发消息对象创建过程如上图所示,...
阅读全文