三种框架简介
微服务应用
1 单机应用
2 集群应用
- DB查询优化:
- 搜索集群,用以提升数据检索性能,解决类似like查询慢的问题。
- 缓存集群,在DB和应用集群之间增加一层。用以提升热点数据访问性能。
- DB写入优化:分库分表
- 垂直拆分:将不同的业务数据放到不同的数据库实例中。
- 水平拆分:把同一个表中的数据拆分到多个数据库中。
3 微服务应用
- 将整个系统进行服务化拆分,封装成多个服务,独立开发、部署和运维。
- 服务之间可以通过HTTP和RPC协议进行通信。(开源框架:Dubbo、Thrift)
- 服务之间异步通信需要引入消息中间件。(如:kafka)
框架底层技术
服务发现
限流、熔断
故障转移
面向互联网的三高系统,最关注的软件质量属性是:性能、可用性、伸缩性、扩展性、安全性。
而构建此类系统,最常见的架构模式有:横向分层、纵向分割、分布式化、集群化、使用缓存、使用异步模式、使用冗余、自动化(发布、部署、监控)。
具体来说,可以在不同层次常用的技术有:
前端架构
• 浏览器优化技术:合理布局,页面缓存,减少http请求数,页面压缩,减少 cookie 传输。
• CDN
• DNS负载均衡
• 动静分离,静态资源独立部署
• 动态图片独立提供服务
• 反向代理
应用层架构
• 业务拆分
• 负载均衡
• 虚拟化服务器、容器化
• 无状态(以及分布式 Session)
• 分布式缓存
• 异步、事件驱动架构、消息队列
• 多线程
• 动态页面静态化
服务层架构
• 分布式微服务(分级管理,超时设置,异步调用,服务降级,幂等性设计。)
• 同应用层架构
存储层架构
• DFS
• 关系数据库路由
• NoSQL数据库
• 数据同步
• 数据冗余
安全架构
• Web攻击(XSS、Sql Injection)
• 数据加密
• 密钥管理
发布、运维
• 自动化测试与发布
• 灰度发布
• 浏览器数据采集
• 服务器业务数据采集
• 服务器性能数据采集
• 系统监控
• 系统报警
机房
• 散热、省电、定制服务器