摘要:
算法应用 这是一种路由算法,适用于大部分的路由场景,优点是在伸缩性需求较高的场景中可以提高命中率。 算法思路 先构造一个长度为2的32次方的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[ 2^31, 2^31))将缓存服务器节点放置在这个Hash环上,然后根据需要缓存的 阅读全文
摘要:
装饰模式可以在不创造更多子类的情况下讲对象的功能加以扩展 角色 + 抽象构建角色:一个接口或抽象类,规范准备接受附加责任的对象(即具体构建角色) + 具体构建角色: 具体的,可以被装饰 + 装饰角色:持有一个抽检构建的引用,已原逻辑实现抽闲构建角色的方法。 + 具体装饰角色:可以装饰构建角色,也可以 阅读全文
摘要:
角色 + 被观察者:被观察者持有一组对抽象观察者的引用 + 抽象观察者:一个接口,封装事件方法 + 具体观察者:实现抽象观察者接口,被观察者可以绑定观察者、取消绑定。 UML类图 当被观察者状态改变时,notify()方法要被调用,在该方法中调用observers类表中每一个observer的方法。 阅读全文
摘要:
静态代理 角色 + 公共接口: 封装了需要被代理的方法 + 真实对象: 被代理方 + 代理对象: 代理方 UML类图 代理对象持有对真实对象的引用,并且是一种一一对应的引用,此二者都实现公共接口(即实现需要被代理的方法),代理对象可以自行决定被代理对象的方法以何种方式执行、以及执行前后分别还需执行何 阅读全文
摘要:
角色 + 抽象策略 策略的一个抽象,通常是一个函数式接口。 + 具体策略 实现抽象策略的类的实例,匿名内部类的对象较为常见。 + 策略使用者 该使用者实例应该持有一个抽象策略引用作为成员,以便调用策略中的方法。 UML 通常的用法是创建Environment类同时使用匿名内部类初始化strategy 阅读全文
摘要:
代码 [volatile关键字详解][1] [1]: https://www.cnblogs.com/zhengbin/p/5654805.html 阅读全文
摘要:
[Part 1 (1 7)][1] 对Spring Boot 的简短介绍,提供整个文档的一份快速阅读的地图,使用起来方便查找 [Part 2 (8 12)][2] 开始使用 + [8 一些好处的介绍][3] + [9 环境要求][4] + [9.1 内嵌web容器版本][5] + [10 安装手册] 阅读全文
摘要:
本地缓存的结构 本地缓存中用来存储依赖的Gradle根目录是 缓存实际上被分为两个部分,包括从仓库下载的原始二进制文件和已下载工件的元数据 gradle缓存特性 gradle会将依赖工件的来源存储在缓存中,当仓库中的结构发生变化,会自动调整,使得新的构建更可靠 工件变化检测,项目依赖元数据被存储在缓 阅读全文
摘要:
仓库 gradle对现有仓库支持如下 Maven 仓库 本地文件系统或远程服务器中的Maven仓库,或者预配置的Maven Central Ivy 仓库 本地文件系统或远程服务器中的Ivy仓库,具有特定的结构模式 扁平的目录仓库 本地文件系统的仓库或者远程目录仓库,没有元数据支持 仓库API 项目中 阅读全文
摘要:
gradle项目的依赖类型 依赖API 上图是项目、依赖处理器、依赖 的类图表示 gradle项目有一个DependencyHandler实例,通过getDependencies()方法来取得引用。 声明依赖需要通过dependencies配置块中的依赖处理器方法来声明 每个依赖都是一个Depend 阅读全文