随笔分类 -  大型网站架构

摘要:架构师最优价值的地方不在于他们掌握了多少技术,而在于他们经历了多少故障。 写日志引发故障 硬盘空间低于警戒值, log 输出的 level 配置为 debug, 这样一个简单的web请求就会产生大量的log。 经验教训: 应用程序自己的日志输出配置和第三方组件日志输出要分别配置。 检查 log 配置 阅读全文
posted @ 2020-04-13 21:42 神之一招 阅读(209) 评论(0) 推荐(0) 编辑
摘要:XSS 跨站点脚本攻击 用户输入的 validation, 注意请求中的嵌入式脚本 HttpOnly 注入攻击 用户输入的 validation, 参数提前绑定(利用绑定变量 等) CSRF 攻击 (跨站点请求伪造) 攻击者通过跨站请求,以合法用户的身份进行非法操作. 表单 Token, 验证码, 阅读全文
posted @ 2020-04-12 23:28 神之一招 阅读(266) 评论(0) 推荐(0) 编辑
摘要:随着新需求的增加,需要开发新的模块, 开闭原则(对扩展开发,对修改关闭) 低耦合性 软件架构师最大的价值不在掌握多少先进的技术,而在于具有将一个大系统切分成 N 个低耦合的子模块的能力。这些子模块包含横向的业务模块,也包含纵向的基础技术模块。这种能力一部分源自于专业的技术和经验,还有一部分源于架构师 阅读全文
posted @ 2020-04-12 22:57 神之一招 阅读(176) 评论(0) 推荐(0) 编辑
摘要:比如双11, 网站的特点,可能是在某一段时间会有大量访问,过了这段时间,恢复正常。 如果一直保持着“双11标准”运营,那是浪费,所以,就要考虑网站的伸缩性. 业务功能分离 (横向分离,前台,交易,库存,产品 等) 单一业务功能,通过集群实现伸缩. 应用服务器: 通过负载均衡 + 集群 实现伸缩性。 阅读全文
posted @ 2020-04-12 22:34 神之一招 阅读(209) 评论(0) 推荐(0) 编辑
摘要:process available 99.9% (1 - 网站不可用时间/年度总时间)* 100% 分层 不同层,关注点不一样 服务层 / 应用层: 集群, 解决高并发问题 数据层: 数据的安全, 数据不丢失, 数据访问服务不中断. 数据备份 失效转移 失效转移:若数据服务器集群中任何一台服务器宕机 阅读全文
posted @ 2020-04-12 22:10 神之一招 阅读(162) 评论(0) 推荐(0) 编辑
摘要:压力测试, 不断地增加并发数量. 性能测试: 日常的运营 a - b, b点是日常的最高值. 负载测试: b-c, 模拟的是访问高峰, 可以看到系统最大负载是 c 点. 压力测试: 超过 c 点, 系统资源继续增加, 但是TPS却在走下坡路. 直到 d 点(耗费资源到达极限, 系统崩溃) 性能优化策 阅读全文
posted @ 2020-04-12 17:21 神之一招 阅读(220) 评论(0) 推荐(0) 编辑
摘要:架构关注 关注业务需求分析(function requirement) 关注 性能,可用性(稳定性),伸缩性,可扩展性,安全性. 性能: 网站性能的衡量指标, 如响应时间,TPS 等。 可用性: 7X24小时, process available 99.9% 等 伸缩性: 是否容易向集群中添加服务器 阅读全文
posted @ 2020-04-12 16:20 神之一招 阅读(138) 评论(0) 推荐(0) 编辑
摘要:分层思维 分割 指的是在分层的基础之上, 继续进行分割,比如服务层,可以分割出不同的服务. 分布式 分布式部署, 将不同模块部署在不同服务器上,通过远程调用协同工作。 分布式会导致网站依赖错综复杂,开发管理维护困难,因此分布式设计要根据具体情况量力而行。 常用的分布式: 分布式应用和服务:有利用复用 阅读全文
posted @ 2020-04-12 16:06 神之一招 阅读(140) 评论(0) 推荐(0) 编辑
摘要:大型网站特点: 高并发,高可用,海量数据, 用户分广泛, 网络情况复杂, 安全环境恶劣, 需求快速变更,发布频繁. 发展历程 单一服务器 应用与数据服务分离, 数据库压力大, 影响性能. 使用缓存, 改善网站性能. 缓存一般都是在内存中, 所以增加了读取的速度. 提高了网站性能. 使用应用服务器集群 阅读全文
posted @ 2020-04-12 14:56 神之一招 阅读(154) 评论(0) 推荐(0) 编辑