04 2020 档案

摘要:概述调用过程概述我们从开篇的源码分析就知道了 invoker 是调用目标的抽象,所以从上面也可以看到Proxy 调用的最终到了 invoker 对象,通过了 client 的传输,到了提供端,提供端经过解码等操作,最终到了到达的还是 invoker,最后到达实际的服务。更加详尽的调用过程 :源码分析我们先理清一下调用的大概过程,再进行源码分析proxy --> invoker --> chann... 阅读全文
posted @ 2020-04-21 15:11 float123 阅读(485) 评论(0) 推荐(0) 编辑
摘要:概述在上一节我们将集群的时候,最后的 invoker 又 负载均衡的 select 方法选出,我们先来看一下上一节设计到负载均衡的代码, AbstractClusterInvoker 类 : private Invoker doSelect(LoadBalance loadbalance, Invocation invocation, ... 阅读全文
posted @ 2020-04-17 16:48 float123 阅读(210) 评论(0) 推荐(0) 编辑
摘要:部分描述来自官方文档,本文加以润色,半原创集群概述我们先来看一下集群的作用 :为了处理这些问题,Dubbo 定义了集群接口 Cluster 以及 Cluster Invoker。集群 Cluster 用途是将多个服务提供者合并为一个 Cluster Invoker,并将这个 Invoker 暴露给服务消费者。这样一来,服务消费者只需通过这个 Invoker 进行远程调用即可,至于具体调用哪个服务提... 阅读全文
posted @ 2020-04-17 15:13 float123 阅读(304) 评论(0) 推荐(0) 编辑
摘要:问题 类加载机制,一个类加载到虚拟机中一共有几个步骤,这些步骤的顺序哪些是固定的,哪些是不固定的,为什么不固定 答 : 1.加载 2.校验 3.准备 4.静态解析(不固定) 5.初始化 6.使用 7.动态解析(不固定) 8.卸载 参考连接 : https://www.jianshu.com/p/2a 阅读全文
posted @ 2020-04-16 14:43 float123 阅读(320) 评论(0) 推荐(0) 编辑
摘要:堆大小设置 示例分析1 java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -Xms (设置初始化的java堆大小) -Xmx (设置java堆最大内存大小) -Xss (单个线程占用的栈大小) -Xmn (年轻代的大小) -Xms 和 -Xmx 的值相同,那么初始化就 阅读全文
posted @ 2020-04-15 14:51 float123 阅读(564) 评论(0) 推荐(0) 编辑
摘要:文章部分描述来自官方文档,本文仅对其进行润色。概述我们上一节在分析服务导入的时候,createProxy 方法中,调用栈出现了 RegistryDirectory 这个类,且在这个类中进行了很多复杂的操作,最后还创建了一个 invoker ,那么这个 RegistryDirectory 到底是什么呢? 我们需要知道 invoker 是对一个 service 的某一个服务方法的抽象 。服务目录是什么... 阅读全文
posted @ 2020-04-14 16:13 float123 阅读(323) 评论(0) 推荐(0) 编辑
摘要:问题为什么返回的对象不直接是 Invoker 而是代理类呢回答 :Dubbo服务暴露的主要目的是让本地的服务bean能够让其它进程通过网络调用。在暴露服务前,dubbo需要根据配置信息收集服务相关信息,服务的配置信息都配置在ServiceConfig中。Dubbo接收到Spring触发的ContextRefreshedEvent事件后,dubbo进行真正的服务暴露过程。Dubbo服务暴露目的是让消... 阅读全文
posted @ 2020-04-13 14:31 float123 阅读(368) 评论(0) 推荐(0) 编辑
摘要:概述配置 dubbo我们在使用dubbo使用的时候,首先在 resources 下创建 dubbo-consumer.xml 和 dubbo-provider.xml 就可以了,例如我们看一下 dubbo-provider.xml -->provider 服务接口定义如下 :public interface DemoService { String sayHello(String nam... 阅读全文
posted @ 2020-04-09 14:38 float123 阅读(475) 评论(0) 推荐(0) 编辑
摘要:代码和示例的部分来自官方文档,本文只是经过润色概述SPI (Service Provider Interface)是JDK里面的扩展点发现机制。这个机制存在的动机是什么呢?服务发现。 往往我们的系统某个模块底层都有不同的实现,例如数据库的底层实现有 MySQL ,NoSQL 等,而 SPI 根据配置加载具体的实现,一个重要的作用就是解耦。dubbo 中的 SPIdubbo 中 SPI 改进的功能 ... 阅读全文
posted @ 2020-04-09 14:37 float123 阅读(317) 评论(0) 推荐(0) 编辑
摘要:springboot 版本为 : 2.2.3概述spring boot 的启动过程主要是两个方面,一个是创建 SpringApplication 这个类,该类用于启动启动整个应用,是应用的启动类。另一方面是 SpringApplication 的 run 方法,该方法会初始化 listener 和 initialize ,并在分发事件到各个 listeners ,同时从资源中加载bean, 其中 ... 阅读全文
posted @ 2020-04-07 17:57 float123 阅读(1054) 评论(0) 推荐(0) 编辑
摘要:概述文章将介绍分布式在redis中的运用,介绍了 RedLock 实现的思路还有功能的实现。分布式锁的动机当有多个 client 但是只有一个有执行权的分布式结构就可以考虑使用分布式锁。我们首先要知道锁的目的是为了达到执行的顺序性。RedLock 的设计两个必须达到的目标 : 安全和活性保障安全属性 : 互斥,保证了同一个时刻只有一个 client 获得到锁。活性属性A : 死锁释放,客户端cra... 阅读全文
posted @ 2020-04-07 10:47 float123 阅读(194) 评论(0) 推荐(0) 编辑
摘要:问题 :redis默认的持久化方式两种方式的优缺点概述我们知道MySQL中假如按持久化的方式分 : 物理备份 和 逻辑备份 ,前者对应的是 redo log ,后者对应的是 bin log , 也就是说一个记录了某一行的哪个列被修改成了什么值,或是另外一种方式---对某行执行了什么操作(例如:update等),按照这个思路我们就可以很快的理解和把握。Redis 分别提供了 RDB 和 AOF 两种... 阅读全文
posted @ 2020-04-01 16:52 float123 阅读(819) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示