架构设计原则

可扩展性

系统设计应该具备良好的可扩展性,能够支持未来的业务增长和需求变化。设计应该考虑到系统的模块化和分层架构,以便于添加新功能、处理更大的数据量和支持更多的用户。

可靠性

系统设计应该具备高可靠性,能够保证系统的稳定性和可用性。设计应该考虑到故障恢复机制、容错处理和备份策略,以便在系统发生故障时能够快速恢复并保证业务的连续性。并且高可用的架构需要具备:自动侦测、自动修复、自动切换。

极致性能

系统设计应该具备高性能,能够快速响应用户请求并处理大量的并发操作。设计应该考虑到合理的数据结构和算法选择、缓存策略、负载均衡和并发控制等,以提升系统的性能和吞吐量。

系统的性能由TPS决定,跟并发用户数没有多大关系。
系统的最大TPS是一定的(在一个范围内)但并发用户数不一定,可以调整。
建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。一般情况下,大型系统 (业务量大、机器多做压力测试,10000~50000个用户并发,中小型系统做压力测试,5000个用户并发比较常见。

吞吐量 (TPS) = 并发数/平均响应时间

安全性

系统设计应该具备高安全性,能够保护用户数据和系统资源的安全。设计应该考虑到身份认证、访问控制、数据加密和安全审计等,以防止潜在的安全威胁和数据泄露。

可维护性

系统设计应该具备良好的可维护性,能够方便地进行系统的修改、扩展和维护。设计应该考虑到清晰的代码结构、良好的文档和注释、易于调试和测试的设计,以便于开发人员能够快速理解和修改代码。

可伸缩性

系统设计应该具备良好的可伸缩性,能够根据需求的变化进行弹性扩展和收缩。设计应该考虑到水平扩展和垂直扩展的策略,以支持系统的高并发和大规模数据处理。

高可用性

系统设计应该具备良好的可用性,能够提供良好的用户体验和易于使用的界面。设计应该考虑到用户友好的界面设计、良好的响应时间和错误处理机制,以提升系统的可用性和用户满意度。

可测试性

系统设计应该具备良好的可测试性,能够方便地进行单元测试、集成测试和系统测试。设计应该考虑到模块化和解耦的设计,以便于进行自动化测试和持续集成。

可迁移性

系统设计应该具备良好的可迁移性,能够方便地在不同的环境中部署和运行。设计应该考虑到平台无关的设计和使用标准化的接口,以便于系统的迁移和扩展。

成本指标

当项目规模较小时,成本并不是重点关注目标。当项目规模较大时,成本就会变成架构设计中非常重点的关键指标。低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不是架构设计的首要目标,而是架构设计的附加约束。

文章目录

随心笔记

技术无止境 创新不停驻