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

第一章 入门

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值