摘要:
1:用途:我们知道,当一个对象实现了Serilizable接口,这个对象就可以被序列化,我们不关心其内在的原理,只需要了解这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。而在开发过程中,我们可能要求:当对象被序列化时(写入字节序列到目标文件)时,有些属性需要序列化,而其 阅读全文
摘要:
概述事务消息解决的问题是:Provider本地事务 + 消息投递 一起执行。解决应用端 和 MQ端两个独立的应用的操作,在一个事务里面完成因为传统的模式无法保证这一点,比如MQ宕机,或者网络丢失,而事务消息有一个两阶段确认的这一操作,可以大大降低这种丢失的概率。但是这个功能和消费者无关,并不能确保该 阅读全文
摘要:
ThreadLoacal为每个线程都提供了变量的副本,使得每个线程在某个时间访问到,这样对线程间的数据进行了隔离。如下图所以: ThreadLocal的使用ThreadLocal类接口很简单,只有4个方法。 1 1:public void set(T value) ; 2 2:public T ge 阅读全文
摘要:
关于dubbo连通性,也就是dubbo各组件之间通信、privider和consumer连接、以及通信方式这些功能点。话不多说,让我们一起揭开dubob连通性的面纱吧。 dubbo架构在开始之前,先来看一下dubbo整体架构图,有助于从整体把握dubbo框架: 注册中心负责服务地址的注册与查找,相当 阅读全文
摘要:
我们分为4个部分来探讨: 1. 什么是类加载机制?2. 什么是双亲委任模型?3. 如何破坏双亲委任模型?4. Tomcat 的类加载器是怎么设计的? 1. 什么是类加载机制? 代码编译的结果从本地机器码转变成字节码,是存储Java虚拟机把描述类的数据从Class文件加载进内存,并对数据进行校验,转换 阅读全文
摘要:
首先,要线程间通信的模型有两种:共享内存和消息传递 题目:有两个线程A、B,A线程向一个集合里面依次添加元素"abc"字符串,一共添加十次,当添加到第五次的时候,希望B线程能够收到A线程的通知,然后B线程执行相关的业务操作。 方式一:使用 volatile 关键字基于 volatile 关键字来实现 阅读全文
摘要:
线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权, 即在就绪状态的进程除CPU之 阅读全文
摘要:
1、Mysql怎么保证原子性的?OK,是利用Innodb的undo log。undo log名为回滚日志,是实现原子性的关键,当事务回滚时能够撤销所有已经成功执行的sql语句,他需要记录你要回滚的相应日志信息。 例如:(1)当你delete一条数据的时候,就需要记录这条数据的信息,回滚的时候,ins 阅读全文
摘要:
一致性Hash算法背景一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。但现在一致 阅读全文
摘要:
在前两篇《Spring Cloud Ribbon的原理》,《Spring Cloud Ribbon的原理-负载均衡器》中,整理了Ribbon如何通过负载均衡拦截器植入RestTemplate,以及调用负载均衡器获取服务列表,如何过滤,如何更新等的处理过程。 因为,负载均衡器最终是调用负载均衡策略的c 阅读全文