写点什么

第十一周总结

用户头像
胡江涛
关注
发布于: 2020 年 08 月 25 日
第十一周总结

本周的课程,主要讲了两个部分:组件设计原则,系统安全,系统的高可用性。

组件设计原则

1软件复杂度:越拆分越小

2.组件内聚原则

2.1复用发布等同原则

2.2.共同封闭原则

2.3.共同复用原则

3.组件耦合原则

3.1 无循环依赖原则

3.2 稳定依赖原则

3.3 稳定抽象原则

系统安全

XSS跨站脚本攻击

  • 输入检查:输入检查一般是检查用户输入的数据中是否包含一些特殊字符, 如<、>、'、"等,如果发现存在特殊字符,则将这些字符过滤或者编码

  • 输出检查,对html页面输出的内容进行使用htmlEncode

csrf 跨站请求伪造:请求地址添加token并验证

sql 注入:预编译sql或使用参数化查询

Ddos 攻击:

  • 随机抛弃一部分请求

  • 提高服务器配置

  • 高防IP ->aliyun

  • idc 机房 ->运营商

系统的高可用性

使用加密算法:单向散列算法,对称加密算法,非对称加密算法

解耦原则

  • 遵循高内聚,低耦合的组件设计原则

  • 面向对象基本设计原则

  • 面向对象设计模式

  • 领域驱动设计建模

隔离原则:

  • 业务与子系统隔离

  • 使用微服务与中台架构

  • 生产者消费者隔离

  • 虚拟机与容器隔离

使用异步:

  • 多线程编程

  • 反应式编程

  • 异步通信网络编程

  • 事件驱动异步架构

使用备份:

  • 集群设计

  • 数据库复制:遵循CAP原理

使用失效转移:

  • 数据库主主失效转移

  • 负载均衡失效转移

事务补偿机制:通过执行业务逻辑逆操作,使事务回滚到事务前状态。

传统事务的ACID: 原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)

分布式事务的BASE:基本可以(Base Availability),软状态(Soft-state),最终一致性(Eventual consistency)

重试:重试调用方法,上游调用者超时时间要大于下游调用者超时时间之和。

限流:在高并发场景下,如果系统的访问超过了系统的承受能力,可以通过限流对系统进行保护。

  • 计数器(固定窗口)算法

  • 计数器(滑动窗口)算法

  • 令牌桶算法

  • 漏桶算法

异地多活:将数据中心分布在多个不同的地点机房里,这些机房都可对外提供服务。

自动化部署

预发布验证

监控系统

用户头像

胡江涛

关注

放肆才叫青春 2019.05.11 加入

IT软件工程师,一枚

评论

发布
暂无评论
第十一周总结