2015中国系统架构师大会演讲-架构创新.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档