《二零一六中国系统架构师大会演讲-架构创新-余庆》.pdf
文本预览下载声明
架构创新——
如何做到与众不同
易到⽤⻋ 余庆
个⼈简介
• 15 10
年开发经验, 年架构⼯作经历
• 开源分布式⽂件系统FastDFS作者
• 参与过Apache Traffic Server开发
• 做过前端和后端开发
架构核⼼
• 数据和程序分离
• 最核⼼的是数据存储和访问
• +
总体设计⽅案 数据库设计
衡量指标
• 稳定性:Simple is the best.
• 性能
• 可扩展
• 易⽤性:易于运维
容易运维
• 部署和维护简单:配置⽂件统⼀
• 减少⼈⼯操作:提供⼯具和脚本
• 必要的⽇志记录:便于查找和定位问题
⼀个Server配置⽚段
inner_bind_addr = 43
outer_bind_addr = 43
改进后的配置:
#@function LOCAL_IP_GET
inner_bind_addr = inner
#@function LOCAL_IP_GET
outer_bind_addr = outer
架构师发展阶段
• 第⼀阶段:模仿
• 第⼆阶段:创新
模仿阶段
• 分层架构
• 数据库拆分
• 采⽤Master-Slave结构
分层架构⽰例
创新阶段
• 知其所以然
• 不要盲⺫崇拜
创新案例
• 服务化
• 实时搜索引擎
创新案例⼀:服务化
• 解决内部系统之间的调⽤问题
• 模块⾃洽,减少模块耦合
• 分⼯明确,各尽所能
• 性能是最关键的指标
服务化⽅案选型
• HTTP vs. 私有协议
• vs.
⻓连接 短连接
易到服务化框架
• PSF for PHP
:
• CSF for C
:
• ⼆者是统⼀的
⾃建服务化框架优势
• 改变服务进程运⾏⽅式:以daemon⽅式运⾏
• 省去负载均衡层
• 省去建连开销:天然⽀持⻓连接
— 服务层
— 后台逻辑
• ⼆进制私有协议格式紧凑,减少⺴络流量
PHP服务化
• daemon PHP
⽅式运⾏:改变 运⾏⽅式
• Powered by C C
:⺴络通信框架⽤ 开发
PHP服务化框架
创新案例⼆:实时搜索引擎
• 基于地理位置的实时搜索
空间索引⽅式
空间编码⽅式
• GeoHash
• 自定义编码
GeoHash
• GeoHash将二维的经纬度转换成字符串
• 字符串相似的表示距离相近,可以采用字符串前缀匹配
• 最大的缺点就是突变性
• 除了使用定位点的GeoHash编码进行匹配外,还使用
周围8个区域的GeoHash编码
⾃定义编码
• 可以编码为整数:int(经度 / D) * (10 ^ P) + (纬度 /
D)
• D为一个格子对应度数,例如1KM对应的度数为
0.008998
• P为(经度 / D)的最大位数,例如5
• (116.388055, 39.907500) =
显示全部