logo资料库

墨迹天气服务器架构简介.pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
墨迹天气服务器架构简介
墨迹简介 • 累计设备数:3.3亿 • 日活:3000万 • 天气接口日PV:2.5亿 • 定位接口日PV:1亿 • 支持天气城市:35W • 服务器组人数:25人
服务器组功能模块 • 天气接口 • 全球定位 • 时景社区 • 墨迹商城 • App Store • 皮肤小铺 • 空气果 • 广告后台 • 推送 • 官网/论坛/指数页面等等 • 问题反馈
业务特点 • 大并发,高流量 • 高性能,高可用性 • 服务化 • 跨平台 • 多机房部署 • 避免单点故障 • 使用成熟技术 • 国际化
整体架构
技术简介 • JAVA(业务接口)、Python(天气数据中心, 统计及大数据)、PHP(商城,后台,官网论 坛等),少量的C和Go • Nginx作为前端负载均衡,HAProxy作为服务端 负载均衡 • 数据库使用Redis+MySQL的两层架构,少量使 用mongoDB(统计),PostgreSQL(定位) • RPC层传输使用0MQ实现(类似zerorpc),使 用Protobuf作为传输协议 • 两地三机房+云服务的防灾机制
天气接口设计
天气接口设计 • Tomcat层有各项数据的LRU cache • Nginx根据冷热数据会发往不同的Tomcat集群提高 cache hit • 根据时间戳只返回更新的数据 • 单机4个Tomcat实例,共用1份Redis数据 • WeatherBuilder向天气数据中心注册后,天气变更时 会收到天气数据中心的通知,更新主Redis,同时还 会接收消息中心及广告模块的通知。 • Redis是多实例架构,并有一份冗余 • 天气数据中心在多机房有热备 • 最后一道保险:WeatherBuilder除了更新redis外会更 新一份静态天气数据文件放到CDN上,保证主要天 气数据可以正常更新
分享到:
收藏