- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
架构创新——
如何做到与众不同如何做到与众不同
易到用车 余庆
个人简介个人简介
• 15年开发经验,10年架构工作经历
•• 开源分布式文件系统开源分布式文件系统FastDFSFastDFS作者作者
• 参与过Apache Traffic Server开发
• 做过前端和后端做过前端和后端开发发
架构核心架构核心
• 数据和程序分离
• 最核心的是数据存储和访问最核心的是数据存储和访问
• 总体设计方案 + 数据库设计
衡量指标衡量指标
• 稳定性:Simple is the best.
• 性能性能
• 可扩展
• 易用性易用性:易于运维易于运维
容易运维容易运维
• 部署和维护简单:配置文件统一
• 减少人工操作减少人工操作::提供工具和脚本提供工具和脚本
• 必要的日志记录:便于查找和定位问题
一个个SServer配置片段配置片段
inner_bind_addr = 43
outerouter_bindbind_addraddr =211211.138138.1919.243243
改进后的配置改进后的配置:
#@function LOCAL_IP_GET
innerinner_bindbind_addraddr inner=inner
#@function LOCAL_IP_GET
outerouter_bindbind_addraddr outerouter
架构师发展阶段架构师发展阶段
• 第一阶段:模仿
• 第二阶段第二阶段::创新创新
模仿阶段模仿阶段
• 分层架构
• 数据库拆分数据库拆分
• 采用Master‐Slave结构
分层架构示例分层架构示例
创新阶段创新阶段
• 知其所以然
• 不要盲目崇拜不要盲目崇拜
创新案例创新案例
• 服务化
• 实时搜索引擎实时搜索引擎
创新案例创新案例一:服务化服务化
• 解决内部系统之间的调用问题
• 模块自洽模块自洽,,减少模块耦合减少模块耦合
• 分工明确,各尽所能
• 性能是最关键的指标性能是最关键的指标
服务化方案选型服务化方案选型
• HTTP vs. 私有协议
• 长连接长连接 vsvs. 短连接短连接
易到服务化框架易到服务化框架
• PSF:for PHP
•• CSFCSF::forfor CC
• 二者是统一的
自建服务化框架优势自建服务化框架优势
• 改变服务进程运行方式:以daemon方式运行
• 省去负载均衡层省去负载均衡层
• 省去建连开销:天然支持长连接
— 服务层服务层
— 后台逻辑
• 二进制私有协议格式紧凑,减少网络流量
PHPPHP服务化服务化
• daemon方式运行:改变PHP运行方式
• PoweredPowered byby CC::网络通信框架用网络通信框架用CC开发开发
PHPPHP服务化框架服务化框架
创新案例创新案例二:实时搜索引擎实时搜索引擎
• 基于地理位置的实时搜索
空间索引方式空间索引方式
空间编码方式空间编码方式
• GeoHash
• 自定义编码
GGeoHHashh
• GeoHash将二维的经纬度转换成字符串
• 字符串相似的表示距离相近,可以采用字符串前缀匹配
• 最大的缺点就是突变性
• 除了使用定位点的GeoHash编码进行匹配外,还使用
周围8个区域的GeoHash编码
自定义编码自定义编码
• 可以编码为整数:int(经度 / D) * (10 ^ P) + (纬度 /
D)
• D为一个格子对应度数,例如1KM对应的度数为
0.008998
• P为为(经度经度 / D)的最大位数的最大位数 ,例如例如5
•• (116(116.388055388055, 3939.907500)907500) = 32939144373293914437
附近位置检索方式附近位置检索方式
• 按正方形搜索,搜索正方形中包含的格子即可
• 经度和维度两个方向,组合出搜索的格子ID
• 若一个格子纬度方向为1KM,经度方向为1KM * cos(
纬度)
• 检索附近N公里,遍历的格子数:2N * (2N / cos(纬度
))))
易到实时搜索引擎架构易到实时搜索引擎架构
索引加载和更新机制索引加载和更新机制
文档评论(0)