版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
架构创新——如何做到与众不同架构核心数据和程序分离最核心的是数据存储和访问总体设计方案+数据库设计衡量指标稳定性:Simpleisthebest.性能可扩展易用性:易于运维容易运维部署和维护简单:配置文件统一减少人工操作:提供工具和脚本必要的日志记录:便于查找和定位问题一个Server配置片段inner_bind_addr=43outer_bind_addr=43改进后的配置:#@functionLOCAL_IP_GETinner_bind_addr=inner#@functionLOCAL_IP_GETouter_bind_addr=outer架构师发展阶段第一阶段:模仿第二阶段:创新模仿阶段分层架构数据库拆分采用Master-Slave结构分层架构示例创新阶段知其所以然不要盲目崇拜创新案例服务化实时搜索引擎创新案例一:服务化解决内部系统之间的调用问题模块自洽,减少模块耦合分工明确,各尽所能性能是最关键的指标服务化方案选型HTTPvs.私有协议长连接vs.短连接易到服务化框架PSF:forPHPCSF:forC二者是统一的自建服务化框架优势改变服务进程运行方式:以daemon方式运行省去负载均衡层省去建连开销:天然支持长连接—服务层—后台逻辑二进制私有协议格式紧凑,减少网络流量PHP服务化daemon方式运行:改变PHP运行方式PoweredbyC:网络通信框架用C开发PHP服务化框架创新案例二:实时搜索引擎基于地理位置的实时搜索空间索引方式空间编码方式GeoHash自定义编码GeoHashGeoHash将二维的经纬度转换成字符串字符串相似的表示距离相近,可以采用字符串前缀匹配最大的缺点就是突变性除了使用定位点的GeoHash编码进行匹配外,还使用周围8个区域的GeoHash编码自定义编码可以编码为整数:int(经度/D)*(10^P)+(纬度/D)D为一个格子对应度数,例如1KM对应的度数为0.008998P为(经度/D)的最大位数,例如5(116.388055,39.907500)=>3293914437附近位置检索方式按正方形搜索,搜索正方形中包含的格子即可经度和维度两个方向,组合出搜索的格子ID若一个格子纬度方向为1KM,经度方向为1KM*cos(纬度)检索附近N公里,遍历的格子数:2N*(2N/cos(纬度))易到实时搜索引擎架构索引加载和更新机制架构特点文档统一存储,searcher不持久化存储数据和索引不保证数据强一致,只保证数据最终一致对等结构技术实现特点量身定做,耦合业务逻辑性能上追求极致采用高性能服务化框架无锁化:索引读写无锁,延迟释放机制使用msg-pack实现数据序列化使用内存池、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论