摘要: [toc] 1 简介 1.1 概述 为避免单点故障,通常会部署多台服务器。作为服务消费者,在调用时需要考虑: ① 选择哪个服务提供者进行调用 ② 若服务提供者调用失败,将如何操作 选择服务提供者的大概过程如下: 首先,调用 获取Invoker列表(该列表经过路由过滤): 最后,通过 获取最终的Inv 阅读全文
posted @ 2019-04-06 23:56 wolf_w 阅读(905) 评论(0) 推荐(0) 编辑
摘要: [toc] 1 简介 Dubbo提供了4种负载均衡机制: 权重随机算法: 最少活跃调用数算法: 一致性哈希算法: 加权轮询算法: Dubbo的负载均衡算法均实现自 接口,其类图结构如下: 1.1 自适应默认算法 Dubbo的负载均衡算法利用Dubbo的自适应机制,默认的实现为 (即:权重随机算法), 阅读全文
posted @ 2019-04-06 00:41 wolf_w 阅读(2182) 评论(0) 推荐(1) 编辑
摘要: [toc] 1 单机版启动 单机版启动大致可以分为如下步骤: 配置文件解析 初始化数据管理器 初始化网络IO管理器 数据恢复 对外服务 1.1 预启动 在 作为启动类,该类会进行如下操作: 解析 配置文件 清理历史数据 根据配置文件中服务器地址列表的数量,判断是单机还是集群启动 创建 真正启动ZK服 阅读全文
posted @ 2019-04-04 23:16 wolf_w 阅读(1422) 评论(0) 推荐(0) 编辑
摘要: [toc] 1 使用 示例:去除Spring容器中潜在的敏感词信息,例如bean定义中过滤"zxt"、"sb"等词。 1.1 XML文件 1.2 POJO:UserPo 1.3 BeanFactoryPostProcessor 1.4 测试 2 源码分析 2.1 简介 是在 扩展中实现的。在Spri 阅读全文
posted @ 2019-03-21 18:02 wolf_w 阅读(275) 评论(0) 推荐(0) 编辑
摘要: [toc] 1 会话 会话:客户端与服务端创建并保持TCP连接的过程。 1.1 会话状态 当客户端与服务端成功完成连接创建后,就会建立一个会话。ZK会话在整个运行期间的生命周期,会在不同的会话状态之间进行切换: CONNECTING 一旦客户端开始创建对象,客户端状态就会为CONNECTING 网络 阅读全文
posted @ 2019-03-13 14:43 wolf_w 阅读(1363) 评论(0) 推荐(0) 编辑
摘要: [toc] 1 示例 自定义标签的实现: XSD文件、META INF/spring.schemas文件 自定义标签的解析类:BeanDefinitionParser 注册自定义标签解析类:NamespaceHandlerSupport、META INF/spring.handlers 1.1 自定 阅读全文
posted @ 2019-03-13 09:11 wolf_w 阅读(588) 评论(0) 推荐(0) 编辑
摘要: [toc] 1 MySQL架构 MySQL服务器逻辑架构图如下所示: 1.1 并发控制 无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制问题。此处讨论MySQL在两个层面的并发控制: 服务器层 和 存储引擎 1.1.1 读写锁 在处理并发读或并发写时,可以通过实现一个由两种类型的锁组 阅读全文
posted @ 2019-03-12 22:45 wolf_w 阅读(558) 评论(0) 推荐(0) 编辑
摘要: [toc] 1. 数据结构与对象 1.1 SDS Redis自己构建了一种名为Simple Dynamic String(SDS,简单动态字符串)的字符串抽象类型,作为Redis的默认字符串表示。在Redis的数据库里,包含字符串的键值对在底层都是由SDS实现的。如下: 其中键是字符串对象,对象的底 阅读全文
posted @ 2019-03-12 22:43 wolf_w 阅读(270) 评论(0) 推荐(0) 编辑
摘要: [toc] 1. 简介 1.1 类图结构 类不仅仅包含了 的功能,还扩展了许多其他功能,因此通常我们优先使用 类。 通常情况下, 下的抽象类图结构如下: 1.2 方法执行流 类抽象了整个容器的所有流程,具体的加载操作则由具体实现类实现: 2 模块详解 2.1 准备上下文环境 方法主要是做准备工作,如 阅读全文
posted @ 2019-03-11 10:17 wolf_w 阅读(296) 评论(0) 推荐(0) 编辑
摘要: [toc] 1 简介 线程池提供了一种限制和管理资源的方法,包括线程、任务组、并且保存了一些基本的统计信息,如已完成的任务的数量等等。 为了可扩展性,该类提供了很多可调参数以及钩子方法(hook方法)。建议使用工厂类Executors提供的创建线程池的方法。该类类图如下: 1.1 ctl字段 字段打 阅读全文
posted @ 2019-03-07 17:45 wolf_w 阅读(273) 评论(0) 推荐(0) 编辑