随笔分类 - Arch
摘要:背景 最近在工作中遇到了一些现象,大家都按照一样的套路去做事,没有人真正的去想这么做的目的是什么,是否真的合理。 一些问题 1. Spring bean一定要定义一个接口 如果只有一种实现,我们定义成接口是没有什么意义的。对Spring来讲,定义接口和不定义接口唯一的区别,可能只是走了bean托管过
阅读全文
摘要:1. 背景 最近在做数据库(MySQL)方面的升级改造。现状是数据库同时被多个应用直连,存在了一些问题: 1. 有大量的重复代码,维护成本较高,也不优雅; 2. 出现SQL语句质量的问题无法很快定位到是哪个应用导致的; 3. 数据库调用方过于分散,不便于统一控制,比如部分业务数据的读写、屏蔽等; 4
阅读全文
摘要:关于后端系统架构的思考随笔 // 前端 服务端(网关、具体服务) 数据层 个人看了一些书,写了一些代码,也做了一些架构工作。 系统架构可以通过 和`非业务`两个方面来结合起来考虑。 业务方面: 1. 系统具体提供什么服务 具体做哪些业务 如何提供服务 2. 业务模块划分 处理模块与模块之间的依赖:树
阅读全文
摘要:最近在撸 Netty 源码,发现了一些模式,顺手做个笔记。 分析版本是4.0 1. 构造器模式 ServerBootstrap 和 Bootstrap 的构建 2. 责任链设计模式 pipeline 上事件的传播 3. 工厂模式 Channel 的实例化过程 4. 对象池 对线程池的应用,ByteB
阅读全文
摘要:这是以前做的笔记,前东家的数据库分库分表策略,感觉挺有借鉴价值。 假设数据库数量为10 分库分表键为某个ID: hash = Md5(key).subString(0,4); bucket_index = hash.subString(0,3); table_index = hash.subStri
阅读全文
摘要:为了形成一个完整清晰的认识,将概念和关系梳理出来,把坑填平。 I/O多路复用 I/O多路复用主要解决传统I/O单线程阻塞的问题。它通过单线程管理多个FD,当监听的FD有状态变化的时候的,调用回调函数,通知用户已经准备完毕。用户收到通知,就可以进行IO操作了。这种机制大大的提高了系统的吞吐量。I/O多
阅读全文
摘要:"what do we mean by top percentile or tp based latency" tp90 is a minimum time under which 90% of requests have been served. Imagine you have times: C
阅读全文
摘要:有一定数据规模的公司一般都有分库分表的策略,本文记录本人在工作遇过的分库分表策略,分库和分表的逻辑差不多,所以在本文我们认为分库和分表是一个概念。 按照业务垂直划分 比如我是一家酒店OTA,对外提供酒店预定服务。显而易见,在数据库中存着房间的状态信息。我们可以想象得到一线城市查看率、预订率和...
阅读全文
摘要:截止到今天终于把23种GoF设计模式和部分未收录在内的模式实现了一遍,设计模式的学习就告一段落了,在以后的时间如果有新的感悟会定期维护相应的博文。 时间跨度为2014 07 01到2015 10 11,经历了一年多的时间。从畏惧模式到理解模式再到真正懂得模式,这个过程的确是无法言传的体验。虽然经历...
阅读全文
摘要:介绍 组合(COMPOSITE)模式 属于对象结构型模式。将对象组合成树结构以表示“部分 整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。(摘自《GoF设计模式》) 个人见解
我能想到的就是树形菜单的应用,层次关系,只有树形了。。。 UML结构图 ...
阅读全文
摘要:动机 桥接(BRIDGE)模式 也叫HANDLE/BODY模式,属于对象结构型模式。将抽象部分与实现部分分离,使他们都可以独立的变化。(摘自《GoF设计模式》) 个人见解
我理解的桥接模式就是把存在继承关系的结构中的变化的部分进行封装传入。 UML结构图: 场景模拟:今天学什么...
阅读全文
摘要:背景
最近做了一个需求,为了控制数据库连接数,自己写了个简易的数据库连接池。跟F哥聊天的时候提到了,说可以搞个通用的对象连接池,So…… 目的
1. 让对象池相关的需求开发起来更便捷,不用依赖apache的common包;
2. 讨论了简易数据库连接池的缺点,想弥补并通用;
3. 造个轮子感受...
阅读全文
摘要:动机 解释器(INTERPRETER)模式 ,属于类行为型模式。给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。(摘自《GoF设计模式》) 个人见解
自己创造编程语言或者DSL的时候能用到,除此之外,个人认为基本没有什么场景。存在的目的就是为了...
阅读全文
摘要:## 设计模式学习笔记十八:中介者模式### 介绍中介者(MEDIATOR)模式属于对象行为型模式。主要目的是将对象间复杂的调用关系进行解耦。使所有的对象都通过这个中介者进行交互。### 优点+ 对象解耦,提供了复用性;+ 简化了单个对象的交互逻辑;### 缺点+ 中介者业务性太强,黑箱子的雏形。#...
阅读全文
摘要:### 介绍迭代器设计模式: 迭代器提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。### 适用性+ 达到了数据结构与操作的分离+ 访问一个集合对象而无需暴露它的内部表示+ 支持对集合对象的多种遍历+ 为遍历不同的集合结构提供一个统一的接口### UML结构图:![Iterat...
阅读全文