您的位置:首页 > 移动开发

《App后台开发运维和架构实践》读书笔记 - 概述

2017-11-24 00:42 639 查看
第一章 入门

App和后台的沟通:常用HTTP协议, JSON格式;除非是手游和聊天这种延迟要求高的才需要TCP长连接;后台API可参考新浪微博,百度地图等开放平台的API格式;

开发语言:不同的功能,可以用不同的语言,例如: PHP做网站,Golang/Erlang做推送服务器,Java做业务逻辑;

第二章 基础技术

2.2 设计API

- 根据对象设计API,而不是根据UI来设计API (参考成熟的开放平台API)

- API返回值禁止null: 字符串空值使用""不要用null;数组空则使用空数组不要使用null

- 图片:存储唯一一份在后台服务端,根据客户端需要实时生成所需大小的图(客户端和服务器端可都有cache);最好使用七牛或阿里云等云服务;

- API返回码,由客户端App来决定显示给用户的字符串等信息;

- 考虑API版本升级;

2.3 数据库

Redis: <Key, Value>, 全内存,可持久化防宕机;做缓存使用;或高频访问的数据库;

MongoDB: 扩展性好;适合Big Data;适合存储地理坐标的数据;

MySQL: 适合事务性应用(银行);SQL支持全面;

2.4 消息队列

RabbitMQ, Redis, ZeroMQ, ActiveMQ, Kafka

2.5 使用分布式服务实现业务的复用

- REST: 每个URL代表一种资源; 客户端通过GET/POST/PUT/DELETE这4个动词对App后台进行操作;App向后台的请求是无状态了,适合云计算环境;

- RPC: Hprose, Dubbo, Dubbox等

2.6 搜索功能

Lucene, Solr, ElasticSearch, Sphinx, CoreSeek, ......

支持拼音:把拼音也作为倒排索引的Key

2.7 定时任务

LinuxCrontab; Java的Quartz;Python的APScheduler

第三章 后台核心技术

3.1 用户验证方案: 使用HTTPS协议;用户登录方案

3.2 App通信安全:URL签名;AES对称加密;通信安全

3.3 短信服务: 建议接入至少2家短信平台; 1家不可用时,立马切换到使用另一家;

3.4 处理表情的一些技巧
3.5 高效更新数据(微博等Feed流数据): 
- App客户端轮询后台服务器 (耗流量,增大后台服务器压力)
- 推送:推送消息发送:后台服务器-->推送服务器-->App后端;App后端根据自身状况,可选的向后抬服务器发送数据索取请求;
- 增量更新数据:后台服务器中,记录每条数据的update_time;App客户端每次发送请求要附带上上次请求的时间戳;后台服务器只返回这个时间戳之后的内容
3.6 图片处理:两级缓存(App客户端缓存;图片服务器端缓存);尽量使用云服务,有现成的图片大小变换功能,速度快!
3.7 音视频处理:FFmpeg; 七牛等云服务
3.9 文件系统:首选云服务;自己搭可以用FastDFS; 租用CDN加速客户端;
3.10 ELK日志分析平台:Logstash+ElasticSearch+Kibana
3.11 Docker

<
9e38
/div>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐