【架构设计】12-架构设计流程:详细方案设计

前言

在完成备选方案的设计和选择后,我们需要将备选方案进行细化,使得备选方案变成一个可以落地的方案。这就是我们要讲的详细方案的设计

架构设计第4步:详细方案设计

简单的来说,详细方案设计就是将方案涉及到的关键细节给确认下来。详细方案里也有一些技术点跟备选方案是类似的,但是这里的是轻量级的,只需要根据这些技术点适用的场景选择就可以了。
例如,Nginx的负载均衡策略,简单的按照以下规则选择就可以。

  • 轮询:(默认)

    每个请求按照顺序逐一分配到后端服务器,后端服务器的请求基本一致,如果某台服务器挂掉,可以自动剔除。

  • 加权轮询:

    根据权重进行轮询,权重高的服务器分配到的请求多,权重低的服务器分配到的请求低。一般应用于服务器性能不一致的情况下,比如新老服务器。

  • ip_hash

    每个请求根据IP的hash进行分配,这样每个访问都固定分配到一台服务器上,主要用于解决session问题。

  • fair
    按后端服务器的响应时间进行分配,响应时间短的优先分配,能够最大化的平衡后端服务器的压力,适用于后端服务器性能不一致的情况,也可以防止某个后端服务器性能不好的情况下仍然接收一样多的请求而造成的雪崩效应。

  • url_hash

    根据访问的url的hash进行分配,同一个URL定向到同一个服务器,主要用于可以缓存的情况。

详细设计方案阶段可以会遇到一种极端的情况,就是发现之前的备选方案不可行,一般发生这种情况的主要原因是备选方案设计时遗漏了某个关键技术点或某个关键质量属性。可以通过以下方式进行避免这种情况发生:

  • 架构师不仅要进行备选方案设计和选型,还需要对备选方案的关键细节有较深的理解。
  • 通过分步骤、分阶段、分系统的方式,尽量降低系统方案的复杂性。方案本身越复杂,就越有可能因为某个细节而推翻整个方案。适当降低复杂性,可以降低这种风险。
  • 如果方案本身很复杂,就可以采用设计团队的方式进行设计,博采众长,防止只有1-2个架构师可能出现的思维盲点和经验盲区。

注:文章内容总结于极客时间13 | 架构设计流程:详细方案设计


   转载规则


《【架构设计】12-架构设计流程:详细方案设计》 孤独如梦 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
【架构设计】14-高性能数据库集群:分库分表 【架构设计】14-高性能数据库集群:分库分表
前言读写分离分散了数据库的读写压力,但并没有降低数据库的存储压力。当数据量达到上亿的时候,单台数据库就会成为瓶颈。 单表数据量太大的话,读写性能会很差。增加索引,索引也会很大。 数据库文件太大的话,备份和恢复都要花费很多时间。 数据库文件
2019-05-29
下一篇 
【架构设计】11-架构设计流程:评估和选择备选方案 【架构设计】11-架构设计流程:评估和选择备选方案
引言在完成备选方案的设计后,如何挑选一个最终方案也是一个很大的挑战,主要是由于: 每个方案都是可行的,如果不可行的话就不可能成为备选方案。 没有哪个方案是完美的。每个方案都可能有缺陷。 评价标准比较主观,因此很容易的评审会议上出现架构师争
2019-05-29
  目录