随着公司规模的发展,合理稳定的技术架构是业务快速发展的保证,目前很多互联网公司的规模已经很大,在他们成长的过程中,系统结构的变更是怎样的,对我们又有什么样的借鉴?业务规模、数据量越来越大,传统的单机系统已经不能支持,分布式系统的坑有哪些,有哪些优秀的设计?
- 分布式系统的特点以及设计理念 通过网络松耦合、对机器硬件要求低、强调横向扩展、不允许单点失效、尽可能减少节点网络开销、服务无状态等特点的介绍。
- book-Designing Data-Intensive Applications 评价很高
- 关于 CAP 理论的深度剖析
- 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
- 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
- 分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
- 互联网分布式事务-coolshell
- 分布式系统下全局 ID 生成方法
- MongoDB文档(Document)全局唯一ID的设计思路 类似于 twitter 的开源算法
snowflake
- 58沈剑细聊分布式ID生成方法 数据库的 auto_increment 、单点批量ID生成服务、uuid、取当前毫秒数、类snowflake算法 各类的优缺点。
- MongoDB文档(Document)全局唯一ID的设计思路 类似于 twitter 的开源算法
- Dapper,大规模分布式系统的跟踪系统 -google 类似于阿里的鹰眼(Egaleye),google 原版论文Dapper, a Large-Scale Distributed Systems Tracing Infrastructure,类似于 Twitter 的Distributed Systems Tracing with Zipkin
- Stack Overflow: The Architecture - 2016 Edition stack Overflow最新版的架构设计
- 追求极致-从技术细节看美团架构 讲述美团作为电商网站的技术架构发展历程,没有最好的架构,只有不断优化。
- 挖财技术体系架构以及 Scala 在挖财的实践 后端技术用的主要是比较大众的东西,Web 容器用 Tomcat,框架主要是 Spring MVC,也有少量的 Play,中间服务层是 Dubbo,微容器用Spring Boot,服务注册这一块是用 ZooKeeper,核心业务开发方式还是围绕着 Spring 和 Mybatis 等;数据的存储这块是 MySQL 和 Hbase,分布存储这块是用阿里巴巴之前开源的一个中间件 Cobar。消息和实时计算这块主要是 Kafka, Storm,日志以及监控系统则是用典型的ELK和Zabbix。(对于中小型的公司来讲有借鉴意义)
- 单表 60 亿记录等大数据场景的 MySQL 优化和运维之道
- 乐视电商云的整体架构与技术实现
- MongoDB在58同城的应用实践
- 今日头条架构演进之路——高压下的架构演进专题 解耦、微服务(轻量级)、自动化。