摘要: 我们分为4个部分来探讨: 1. 什么是类加载机制?2. 什么是双亲委任模型?3. 如何破坏双亲委任模型?4. Tomcat 的类加载器是怎么设计的? 1. 什么是类加载机制? 代码编译的结果从本地机器码转变成字节码,是存储Java虚拟机把描述类的数据从Class文件加载进内存,并对数据进行校验,转换 阅读全文
posted @ 2021-01-28 15:31 郭慕荣 阅读(240) 评论(0) 推荐(0)
摘要: 首先,要线程间通信的模型有两种:共享内存和消息传递 题目:有两个线程A、B,A线程向一个集合里面依次添加元素"abc"字符串,一共添加十次,当添加到第五次的时候,希望B线程能够收到A线程的通知,然后B线程执行相关的业务操作。 方式一:使用 volatile 关键字基于 volatile 关键字来实现 阅读全文
posted @ 2021-01-27 15:37 郭慕荣 阅读(1137) 评论(0) 推荐(1)
摘要: 线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权, 即在就绪状态的进程除CPU之 阅读全文
posted @ 2021-01-27 11:30 郭慕荣 阅读(3163) 评论(0) 推荐(0)
摘要: 1、Mysql怎么保证原子性的?OK,是利用Innodb的undo log。undo log名为回滚日志,是实现原子性的关键,当事务回滚时能够撤销所有已经成功执行的sql语句,他需要记录你要回滚的相应日志信息。 例如:(1)当你delete一条数据的时候,就需要记录这条数据的信息,回滚的时候,ins 阅读全文
posted @ 2021-01-27 10:53 郭慕荣 阅读(3571) 评论(0) 推荐(0)
摘要: 一致性Hash算法背景一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。但现在一致 阅读全文
posted @ 2021-01-25 14:52 郭慕荣 阅读(304) 评论(0) 推荐(0)
摘要: 在前两篇《Spring Cloud Ribbon的原理》,《Spring Cloud Ribbon的原理-负载均衡器》中,整理了Ribbon如何通过负载均衡拦截器植入RestTemplate,以及调用负载均衡器获取服务列表,如何过滤,如何更新等的处理过程。 因为,负载均衡器最终是调用负载均衡策略的c 阅读全文
posted @ 2021-01-18 11:17 郭慕荣 阅读(212) 评论(0) 推荐(0)
摘要: 链接地址:https://www.cnblogs.com/weigaung/p/9233193.html 阅读全文
posted @ 2021-01-15 17:55 郭慕荣 阅读(104) 评论(0) 推荐(0)
摘要: RestTemplate内部调用负载均衡拦截器,拦截器内最终是调用了负载均衡器来选择服务实例。接下来撸一撸负载均衡器的内部,看看是如何获取服务实例,获取以后做了哪些处理,处理后又是如何选取服务实例的。分成三个部分来撸: ①:配置②:获取服务③:选择服务 配置在上一篇《Spring Cloud Rib 阅读全文
posted @ 2021-01-14 11:48 郭慕荣 阅读(471) 评论(0) 推荐(0)
摘要: 直接开撸代码,通过代码来看Ribbon是如何实现的。 1:RibbonAutoConfiguration配置生成RibbonLoadBalancerClient实例。 代码位置:org.springframework.cloud.netflix.ribbon.RibbonAutoConfigurat 阅读全文
posted @ 2021-01-13 18:15 郭慕荣 阅读(348) 评论(0) 推荐(0)
摘要: 在实际场景中会遇到这样的一种情况:数据量很大,而且还要分页查询,如果数据量达到百万级别之后,性能会急剧下降,导致查询时间很长,甚至是超时。接下来我总结了两种常用的优化方案,仅供参考。但是需要注意的是有个前提:主键id是递增且数据有序。 1:使用子查询优化 这种方式先定位偏移位置的 id,然后往后查询 阅读全文
posted @ 2021-01-06 17:45 郭慕荣 阅读(2029) 评论(0) 推荐(0)