[关闭]
@wangzhuanyun 2019-10-21T11:59:29.000000Z 字数 1266 阅读 350

DAY1

未分类


互联网项目优化方向

性能
访问速度

影响因素:

(软件质量,网络配置<用户带宽,服务器带宽>,用户配置<电脑配置,浏览器渲染速度>)

性能指标

相应时间(RT):一次请求的从请求到相应的时间间隔
并发用户数:同时访问系统的用户数
吞吐量:TPS(每秒事务速度),QPS(查询速度),HPS(每秒点击量)
性能计数器:内存,CPU....

什么情况进行性能调整

业务场景:用户访问网站加载太慢
瓶颈:
应用处理慢:存储分离,缓存,集群
数据库处理慢:缓存,读写分离
页面,静态资源加载太慢:代理加速(CDN加速与反向代理)

可用性

网站反映速度

量化公式

网站年度可用性=(1-不可用时间/年度运行总时间)*100%
业界通常使用几个9来进行表示,比如:2个9及99%

面临问题

应用服务器宕机
服务超时(线程死锁等)
数据库服务故障,数据丢失

优化思路:

(应用,服务,数据)备份,失效转移

落地方案:

应用集群
应用分布式(灾难分摊,灵活集群配置)
服务(熔断,异步,降级)
数据备份(分布式数据库,主从同步)

应用集群方案:

DNS负载均衡(1.DNS可靠性高 2.不判断节点故障)
Nginx负载均衡(容易成为系统瓶颈)
LVS负载均衡(抗负载能力强,配置少,节点故障判断能力弱)

应用分布式:

分布式应用(多个具有不同职能的应用,组成一个完整的应用)

服务高可用

常见问题:异常,超时
实现思路:熔断,异步(请求和处理隔离),降级(舍末保本)

数据高可用:

分布式——故障分摊(垂直,水平,混合)
显示方案(Cobar,MyCat)
集群——灵活配置(一主多从<主写从读>,多主多从<主写从读,多主互相备份>)

缓存高可用

redisCluster
多主多从(至少6台服务器)
slot=CRC16(KEY)mod 16384

伸缩性
用户量突增,系统做最小调整满足需求(网站根据情况灵活调整硬件配置的能力)

应用场景

应用负荷增大
数据库数据量增大
缓存数据量增大

应用服务器伸缩

分布式+集群(按需伸缩)
注意事项(无状态应用)

数据库服务器伸缩
mycat(重新指定分片规则,根据新的规则进行旧数据迁移)

缓存服务器伸缩
redisCluster(重新指定slot,按照新的slot迁移缓存数据)

扩展性
新功能最小开发量

描述:面临新业务们如何在对现有系统影响最小的情况下持续扩展
场景:
1.原有业务功能调整
2.服务器地址发生变化
3.数据结构发生变化

优化方式:

A.服务器地址发生变化:
1.动态获取地址
2.统一托管配置
B.原有业务功能调整:
并行业务->消息中间件
C.数据结构发生变化:NOSQL数据库

安全性
攻击方式与防护

网站攻击(XSS攻击<跨站脚本攻击>,注入攻击,CSRF<夸站点请求伪造>攻击)

隔离防护
思路:
1.将业务应用限制于内网
2.使用网关进行请求代理

分布式微服务

定义:

将一个庞大的系统按照一定的维度设计成多个子服务

优点:

高可用(故障分摊)

微服务定义:微服务就是一些协同工作的小而自治的服务

设计原则:
围绕业务切分
单一职责
谁创建,谁负责
避免循环依赖

作业:
架构优化5大方向
性能的衡量指标
可用性的衡量指标
集群的有点
XSS个CSRF攻击

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注