毕业总结
感想:
经过将近 4 个月的学习收获还是颇多的。以前的知识都是零散的散落在各个角落里。经过这次培训,把我工作中的那些零星的知识点和经验,由点到线,线到面的串联起来了,形成了一套体系。
这套课程帮助我建立起一套架构知识体系和一套架构方法论,通过这套体系我们可以站在比较高的视角看待之前遇到的问题,你会惊讶的发现我们之前的那些不经意的做法或者认知原来是这么回事。
接下来我将这套课程中给我印象最为深刻的内容总结如下。
总结:
4R 架构
软件架构指软件系统的顶层结构,系统是分层的(Rank),它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。
------提纲挈领的指出软件架构的概念。
架构图
业务架构图、系统后端架构图、应用架构图、部署架构图等等,作为一名架构师画好系统架构图是最基本的素养。
------有时候一张结构清晰的图胜过千言万语。
面向复杂度架构设计逻辑
------实际工作中遇到问题就照着这个方法论去寻找答案。
面向复杂度架构设计环
------归纳总结了我们软件工程的工作流程。
架构设计三原则
合适原则;
简单原则;
演化原则;
------工作中就是这么做的,但是从思想上没有像课程里面这样提炼出这三句精华。
三高架构设计
高可扩展(分层、拆分、封装)
高性能(计算高性能、存储高性能、任务分配、任务分解)
高可用(计算高可用、存储高可用)
------面试中最喜欢问的问题。
架构师的职责
架构设计前期:主要理清需求、干系人、业务架构图
架构设计中期:设计备选方案、讨论方案可行性
架构设计后期:细化架构设计,落地架构文档
------标准的系统迭代工作流程。
存储架构设计
数据库存储架构:读写分离、分库分表
复制架构:复制算法
存储架构模式:分片架构和分区架构
------数据存储的几种模式。
高性能系统
缓存架构:本地缓存、CDN、web 容器缓存、应用缓存、分布式缓存
复制均衡架构:DNS、F5/LVS、Nginx 等,负载均衡算法:随机、轮询、hash、加权
接口高可用:限流、排队、降级、熔断
------面试中最喜欢问的问题。
微服务架构
微服务拆分注意点:拆分的力度不要太细(三个火枪手原则)、基础设施不完善
微服务拆分的挑战:分布式事务、全局幂等、接口兼容、接口循环调用
微服务技术选型:SpringCloud、Dubbo
微服务拆分:按业务拆分(业务边界的划分、三个火枪手)、按质量拆分(按性能、业务重要度、可用性、稳定性)
------把微服务治理方面的行为归纳总结成了一套方法论。
高可用架构
三大核心原理:FLP 不可能原理、CAP 定理、BASE 理论
使用 FMEA 方法排除架构隐患
业务级灾备架构设计:
同城多中心架构
跨城多中心架构
跨国数据中心架构
异地多活架构的三种模式
业务定制型异地多活
业务通用型异地多活
存储通用型异地多活
异地多活:原理、原则、步骤、技巧
------当前系统规模到达一定的量级之后这块内容是必须要考虑的。
技巧架构设计
网络模型:传统网络模型、Reactor 网络模型、Proactor 网络模型、网络模型对比
使用 zookeeper 实现高可用架构:主备切换、集群选举
复制集群架构设计技巧:Redis Sentinel 设计技巧、MongoDB Replication 设计技巧
分片架构设计技巧:Elasticsearch 集群设计技巧、Redis cluster 设计技巧、MongoDB/HDFS 集群设计技巧
常见集群算法解析:Gossip 协议、Bully 选举算法、Raft 选举算法
------分布式系统存储的设计案例与技巧讲解。
架构重构与架构演进技巧
------课程里面给出了一套可以套用的方法论。
版权声明: 本文为 InfoQ 作者【miliving】的原创文章。
原文链接:【http://xie.infoq.cn/article/a63d11324dc6af84a189a4627】。文章转载请联系作者。
评论