架构创新如何做到与众不同讲述.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
架构创新—— 如何做到与众不同 架构核心 数据和程序分离 最核心的是数据存储和访问 总体设计方案 + 数据库设计 衡量指标 稳定性: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) = 3293914437 附近位置检索方式 按正方形搜索,搜索正方形中包含的格子即可 经度和维度两个方向,组合出搜索的格子ID 若一个格子纬度方向为1KM,经度方向为1KM * cos(纬度) 检索附近N公里,遍历的格子数:2N * (2N / cos(纬度)) 易到实时搜索引擎架构 索引加载和更新机制 架构特点 文档统一存储,searcher不持久化存储数据和索引 不保证数据强一致,只保证数据最终一致 对等结构 技术实现特点 量身定做,耦合业务逻辑 性能上追求极致 采用高性能服务化框架 无锁化:索引读写无锁,延迟释放机制 使用msg-pack实现数据序列化 使用内存池、buffer循环使用 thread local 总结 思维升级:打破思维定势 按需定制:制造更好的轮子 勇于尝试:想明白了就去干!

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档