摘要: ThreadLoacal为每个线程都提供了变量的副本,使得每个线程在某个时间访问到,这样对线程间的数据进行了隔离。如下图所以: ThreadLocal的使用ThreadLocal类接口很简单,只有4个方法。 1 1:public void set(T value) ; 2 2:public T ge 阅读全文
posted @ 2021-01-29 18:27 郭慕荣 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 关于dubbo连通性,也就是dubbo各组件之间通信、privider和consumer连接、以及通信方式这些功能点。话不多说,让我们一起揭开dubob连通性的面纱吧。 dubbo架构在开始之前,先来看一下dubbo整体架构图,有助于从整体把握dubbo框架: 注册中心负责服务地址的注册与查找,相当 阅读全文
posted @ 2021-01-29 13:30 郭慕荣 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 我们分为4个部分来探讨: 1. 什么是类加载机制?2. 什么是双亲委任模型?3. 如何破坏双亲委任模型?4. Tomcat 的类加载器是怎么设计的? 1. 什么是类加载机制? 代码编译的结果从本地机器码转变成字节码,是存储Java虚拟机把描述类的数据从Class文件加载进内存,并对数据进行校验,转换 阅读全文
posted @ 2021-01-28 15:31 郭慕荣 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 首先,要线程间通信的模型有两种:共享内存和消息传递 题目:有两个线程A、B,A线程向一个集合里面依次添加元素"abc"字符串,一共添加十次,当添加到第五次的时候,希望B线程能够收到A线程的通知,然后B线程执行相关的业务操作。 方式一:使用 volatile 关键字基于 volatile 关键字来实现 阅读全文
posted @ 2021-01-27 15:37 郭慕荣 阅读(1114) 评论(0) 推荐(1) 编辑
摘要: 线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权, 即在就绪状态的进程除CPU之 阅读全文
posted @ 2021-01-27 11:30 郭慕荣 阅读(2903) 评论(0) 推荐(0) 编辑
摘要: 1、Mysql怎么保证原子性的?OK,是利用Innodb的undo log。undo log名为回滚日志,是实现原子性的关键,当事务回滚时能够撤销所有已经成功执行的sql语句,他需要记录你要回滚的相应日志信息。 例如:(1)当你delete一条数据的时候,就需要记录这条数据的信息,回滚的时候,ins 阅读全文
posted @ 2021-01-27 10:53 郭慕荣 阅读(3478) 评论(0) 推荐(0) 编辑
摘要: 一致性Hash算法背景一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。但现在一致 阅读全文
posted @ 2021-01-25 14:52 郭慕荣 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 在前两篇《Spring Cloud Ribbon的原理》,《Spring Cloud Ribbon的原理-负载均衡器》中,整理了Ribbon如何通过负载均衡拦截器植入RestTemplate,以及调用负载均衡器获取服务列表,如何过滤,如何更新等的处理过程。 因为,负载均衡器最终是调用负载均衡策略的c 阅读全文
posted @ 2021-01-18 11:17 郭慕荣 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 链接地址:https://www.cnblogs.com/weigaung/p/9233193.html 阅读全文
posted @ 2021-01-15 17:55 郭慕荣 阅读(94) 评论(0) 推荐(0) 编辑
摘要: RestTemplate内部调用负载均衡拦截器,拦截器内最终是调用了负载均衡器来选择服务实例。接下来撸一撸负载均衡器的内部,看看是如何获取服务实例,获取以后做了哪些处理,处理后又是如何选取服务实例的。分成三个部分来撸: ①:配置②:获取服务③:选择服务 配置在上一篇《Spring Cloud Rib 阅读全文
posted @ 2021-01-14 11:48 郭慕荣 阅读(419) 评论(0) 推荐(0) 编辑