App后台开发运维和架构实践读书笔记

时间:2021-10-04 02:17:52

App后台开发运维和架构实践

App后台基础技术

从App业务逻辑中提炼API接口

业务逻辑思维导图

功能 - 业务逻辑思维导图

基本功能模块关系

  • 人有哪些功能模块
  • 事有哪些功能模块
  • 人和事之间的关系又有哪些模块
  • *

功能模块接口UML

编写在线API测试文档

  • Swagger-UI

设计稿标注API

设计API的要点

  • 根据对下设计API
  • API的命名
  • API的安全性
  • API返回的数据
  • 图片的处理
  • 返回的提示信息
  • 在线API测试文档
  • 在App客户端启动时调用一个API获取必要的初始化信息
  • 关于API的版本升级问题

如何选择合适的数据库产品

Redies, MongoDB, MySQL 读写数据的区别

  • Redies 内存
  • MongoDB 硬盘+内存
  • MySQL 硬盘

Redies, MongoDB, MySQL 查找数据的区别

  • Redies 键值对
  • MongoDB 知道id或者索引, 不知道id或者索引
  • MySQL 知道id或者索引, 不知道id或者索引

Redies, MongoDB, MySQL 适用场景

Redies 内存价格高, 适合的是读写频率高的数据, 如需要验证的用户的身份信息.

MongoDB 适合的有网站数据, 大尺寸低价值的数据, 高伸缩的场景, 存储地理坐标的数据. 不合适的有高度事务性的系统(银行系统, 会计系统), 传统的商业智能应用, 需要SQL的问题.

MySQL 适合的有事务性的系统, 需要复杂SQL的问题.

如何选择消息队列软件

为什么要用消息队列?

消息队列适用的场景有 发送邮件, 发送短信, 推送消息.

消息队列的工作流程

  • 队列服务器
  • 队列生产者
  • 队列消费者

常见的一些消息队列产品

  • RabbitMQ
  • Redis
  • ZeroMQ
  • ActiveMQ

是用分布是服务实现业务的复用

巨无霸系统的危害

  • 维护上的麻烦
  • 代码管理上的麻烦
  • 数据库连接资源的耗尽

远程服务的优点

独立, 影响小

远程服务的实现

  • REST(REpresentational State Transfer), 表现层状态转化
  • RPC(Remote Procedure Call Protocol), 远程过程调用协议

开源的RPC库: HProse, Dubbo, Dubbox.

搜索技术入门

一个简单的搜索例子

搜索的基本原理

  • 分词
  • 倒序索引

常见的搜索软件介绍

  • Lucene
  • Solr
  • ElasticSearch
  • Sphinx
  • CoreSeek

定时任务

场景: 定期清理一下项目产生的垃圾文件, 某段时间执行一些业务逻辑.

Linux 定时任务 Crontab

在后台轻松管理各种各样的定时任务

  • Quartz (JAVA)
  • APScheduler (Python)