04 2020 档案
摘要:先说一下,本篇文章,只是简单,阅读下源码,应对面试差不多够了,要深入理解,还请看源码 讲实话,看完源码,还是有点小迷,ThreadLocal源码,感觉优点乱。。 每个线程中都可以通过ThreadLocal定义一个独立的副本,不会影响到其他线程; ThreadLocal主要属性和方法 1. 一个静态内
阅读全文
摘要:报错信息 java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration Caused b
阅读全文
摘要:有的时候,dubbo的消费者不需要配置数据源; 在子项目引入父项目依赖的时候 同时引入了自动配置数据源的依赖,有没有配置数据源的时候,就会报错; 两种解决方法: 如果不需要配置数据源,又需要使用依赖,可以使用第一种方法 1. 取消数据源的自动配置; 2. 不引入数据源的依赖,或者排除
阅读全文
摘要:首先要知道CAS CAS Compare and Swap,即比较再交换; 区别于synchronouse同步锁的一种乐观锁(是一种无锁算法) CAS有3个操作数, 内存地址,以直接从内存中获取旧值; 旧的预期值A,代码中的旧值; 要修改的新值B 当且仅当预期值A和内存值V相同时,将内存值V修改为B
阅读全文
摘要:Netty服务启动源码 Server启动实例 一、NioEventLoopGroup的创建 首先创建两个 对象 Boss Group:专门负责接受TCP请求,将请求转交给WorkerGroup; Worker Group:获得连接,进行通信,包括读写,编解码等; 本质是 事件循环线程组 ; 执行流程
阅读全文
摘要:Netty实现RPC RPC(Remote Procedure Call)远程过程调用,一种计算机通信协议 即:一台计算机的程序 调用 另一台计算机的子程序,并且不需要对这个交互,进行额外的编程; RPC机制 RPC调用者要调用远程API,首先调用RPCProxy代理,再通过RCPInvoker调用
阅读全文
摘要:Netty心跳机制 服务器要知道每个Socket是否活跃;要不断监听每个Channel处于什么状态; 实现: 服务器超过3s没有读,提示读空闲; 服务器超过5s没有写,提示写空闲; 超过7s没有读写,提示读写空闲; 1. 配置ServerBootstrap: 2. IdleStateHandler:
阅读全文
摘要:Netty模型 NioEventLoopGroup Netty抽象出两组线程池:BossGroup,WorkerGroup 这两个线程组都是 实例,只是分工不同; Boss Group:专门负责客户端的连接; Worker Group:专门负责网络的读写; 每个线程池中,含有多个NioEventLo
阅读全文
摘要:Reactor模型 解决的问题: NIO API复杂,开发难度大; Netty: 是对NIO的API进行封装; 性能高,吞吐量高,延迟低,减少资源消耗,减少不必需要的内存复制; 基于主从Reactor多线程模型 传统阻塞IO架构: Reactor模型 ServiceHandler将传入的多个请求,根
阅读全文