博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大系统小做培训总结
阅读量:6951 次
发布时间:2019-06-27

本文共 555 字,大约阅读时间需要 1 分钟。

hot3.png

参加公司培训以及和mentor聊天,颇有收获。

系统设计之初进行扁平的设计,然后分模块,分装。

培训进一步了解到了一些概念和业界的作法:

  1. 1/0 风险

  2. 单点故障

  3. 程序对齐

  4. 雪崩

  5. 重点客户和非重点客户分别处理

  6. 核心进程和业务进程分离

随着系统变大,遇到两个方面的问题:

  1. 功能变复杂

  2. 容量规模变大

应对问题1,正确的观念是:

  1. 分业务单元,分模块,分进程

  2. 每个模块半天到两天可以读完和接手

  3. 并行开发

  4. 降低对开发人员的要求

  5. 分层设计 改为 平行设计。分层意味着上层对下层的依赖或者相互依赖,在使用分层设计的时候必须考虑是否必要。化繁为简。

应对问题2,正确的观点是:

  1. 根据预期最大规模,拆分最小业务单元,单元之间不影响。例如目标用户量在42亿,每10万一个段,共42000段并分布在不同的物理机器上。理解段为最细的粒度,根据机器资源情况来制定段的大小:如每个用户最多给100kb用户数据,内存为1GB。则以10W用户id数位最小业务单元。 和Mongodb的sharding的思想是一致的,mongodb的trunk并不是连续的,从而加快数据迁移的速度。但对路由性能和复杂度有一定影响。

  2. hash + 去模的目标是均匀化

 

转载于:https://my.oschina.net/edwardpku/blog/106787

你可能感兴趣的文章
Linux 加入域的那些事儿!
查看>>
大学的最后一年有一门课程叫“人生”。
查看>>
深入 Java 调试体系: 第 1 部分,JPDA 体系概览
查看>>
MyBatis Generator产生的Example类
查看>>
jquery eval解析JSON中的注意点介绍
查看>>
Playmaker全面实践教程之playMaker编辑器
查看>>
XamarinForms教程构建XamarinForms开发环境
查看>>
Python实战(3)指定的文本列求和求平均
查看>>
Hadoop、Storm和Spark 三者的区别、比较
查看>>
解决 No utmpx entry. You must exec "login" from the lowest level "shell".
查看>>
man ifconfig时提示:-bash: man: command not found
查看>>
SQL Server 高可用性(六)日志传送
查看>>
打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用
查看>>
个性化vim之折叠
查看>>
citrix4.5无法进入发布程序界面The supplied credentials could not be validated
查看>>
Java Object[] 向下强转的时候可能会发生异常
查看>>
JAVA实现显示指定类型的文件的例子
查看>>
C基础(41——45)
查看>>
谷歌招聘新职员的五大标准
查看>>
我的友情链接
查看>>