摘要: 总所周知,dubbo是一个RPC框架,其网络通信采用Netty,其Netty服务在何时启动?启动流程是怎样的?线程模型是怎样的的?本文将解答以上问题。 Netty服务启动流程 服务端与消费端的启动流程大同小异,你可以以同样的方法来分析服务端的启动流程,所以这里以服务端为例。 Dubbo中有一个叫做N 阅读全文
posted @ 2021-01-26 11:27 随花四散 阅读(502) 评论(0) 推荐(1) 编辑
摘要: 在《ServiceBean与ReferenceBean创建流程》中的第4.1步说了,在获取invoker时就进行了与注册中心的连接,注册,订阅等一系列操作,由于提供者与消费者大致流程一致,所以这里以消费者端为例,提供者可以以相同的方式分析。其入口的地方为ReferenceConfig#createP 阅读全文
posted @ 2021-01-18 20:25 随花四散 阅读(422) 评论(0) 推荐(1) 编辑
摘要: ServiceBean与ReferenceBean是dubbo与spring整合后的调用的核心类。 提供者在Spring中以ServiceBean的形式存在,消费者需要引用的服务由ReferenceBean构建,两种Bean中记录了dubbo调用的信息,在底层调用时 @EnableDubbo Spr 阅读全文
posted @ 2021-01-18 20:04 随花四散 阅读(1797) 评论(0) 推荐(1) 编辑
摘要: 1. 使用DirectBuffer 以下是NioEventLoop#processSelectedKey方法的部分代码 1 if ((readyOps & (SelectionKey.OP_READ | SelectionKey.OP_ACCEPT)) != 0 || readyOps == 0) 阅读全文
posted @ 2020-05-12 14:44 随花四散 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 首先附上一个简单的服务端启动代码 1 public void bind(int port) throws Exception { 2 // 线程组 一个用于接受客户端连接 一个用于IO操作 3 // parentGroup用于serverBootstrap的父类AbstractBootstrap使用 阅读全文
posted @ 2020-05-12 14:33 随花四散 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 前言 Java提供了若干种线程池,常用的线程池是ThreadPoolExecutor,其中用于提交任务的方法是execute以及submit方法,其中submit最终也是会调用execute方法,所以这里只介绍excute及其相关方法。 在介绍源码之前,希望读者对于线程池参数有基本了解会有助于理解代 阅读全文
posted @ 2020-02-26 11:17 随花四散 阅读(555) 评论(0) 推荐(0) 编辑
摘要: String的两种创建方式 我们知道创建字符串有两种形式,一种是使用字面量创建字符串,另一种是使用new关键字创建: 1 String str1 = "123"; // 字面量 2 3 String str2 = new String("123"); // new 让我们看看下面这段代码 1 Str 阅读全文
posted @ 2020-01-02 11:25 随花四散 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 出现循环依赖的情况 1 // setter方式注入 2 @Component("A") 3 public static class A { 4 5 @Autowired 6 private B b; 7 } 8 9 @Component("B") 10 public static class B { 阅读全文
posted @ 2019-11-13 16:52 随花四散 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 首先看看CHM的重要成员变量: Put方法 AddCount方法 Transfer方法 其中值得注意的是,在进行节点迁移的时候,为什么p.hash&n==0就把他放在新tab下标为i的位置(即位置没有改变),而==1就把他放在tab下标为i+n的位置(即老位置+数组增加的长度)? 首先与运算是满足分 阅读全文
posted @ 2019-10-24 14:59 随花四散 阅读(317) 评论(0) 推荐(1) 编辑
摘要: AtomicInteger Java从1.5开始提供非阻塞的线程安全的包装类,例如AtomicInteger、AtomicLong等,这些实现大同小异,这里以AtomicInteger为例。 AtomicInteger的操作都基于Unsafe类,该类是JDK内部使用的一个工具类,提供硬件级别的原子操 阅读全文
posted @ 2019-07-25 10:38 随花四散 阅读(357) 评论(0) 推荐(0) 编辑