关于互联网架构设计的心得与体会
来源:互联网 发布:淘宝属于什么行业 编辑:程序博客网 时间:2024/04/29 13:33
首先需要声明一个观点:好的架构应该是随着公司业务的发展逐步逐步进化出来的!尤其是针对互联网初创公司,受限于人力,物力,财力,大部分都是将功能放入一个项目,以便于快速上线。然而,随着业务的发展,功能越来越多,服务压力越来越大,都需要对系统的进行重构,以满足业务的发展。
再来说说什么是好的架构,好的架构应该是在资源,需求,性能,可用性,维护性或扩展性中找到一个平衡点。如果在资源充足,需求明确的情况下怎么来设计我们的架构?可以从三个方面来思考:
1.性能
随着业务的发展,用户量越来越大。那就要求我们的系统具有横向扩展的能力,也就是要求我们的系统必须是无状态的。这只是基础条件,接下来最重要的是你要知道你的系统的瓶颈在哪里,可以设置一些监控点,看看哪里耗时最多,然后有针对性的去优化。
考虑性能需要懂得分流!
2.可用性
可用性上可以理解为冗余+自动化+报警
首先我们没办法保证每个服务都是稳定可靠的,因为总有宕机的时候,一般我们在部署服务时最少俩台,这是其一。其二,如果服务中一台宕机,其他服务能不能抗的住,如果抗不住需要再冗余一台。再一个就是自动化,,避免不必要的人工干预。最后一个就是报警,主要是针对系统出现问题时,尤其是需要人工及时干预时。
3.可维护性(扩展性)
尽量保证系统内的功能是高内聚的。早期我们做项目大多数都是所有功能都在一个项目中,很多人都在维护,结果导致冲突大大提高,同时也不利于扩展。我见过一个项目光启动就要十几到二十分钟。所以可以将系统中相关性不是很大的功能,或公用的功能独立出去,形成服务,同时保证服务是可以横向扩展的。一个大的系统变成几个小的系统,维护小的系统肯定比大的系统要方便一些,当然得有个度,如果小系统太多也会增加它的维护成本。另外小系统之间也要尽量减少环形依赖。
说了系统之间的,再说说系统内部,每个系统也要有清晰的分层结构,每层都有自己的职责,层与层之间需要清晰的调用关系。然后再说说代码层面,设计模式,设计原则都是必须要考虑的问题。
- 关于互联网架构设计的心得与体会
- 关于使用httpclient的心得与体会
- 关于互联网“一致性”架构设计的一切
- 关于stm32 控制SIM900A的控制心得与体会
- 关于博达CMS制作网站的心得与体会
- 【心得】编写服务端的相关设计心得及体会
- 【心得】编写服务端的相关设计心得及体会
- lamp 环境搭建的心得与体会
- Java的个人心得与体会
- 线程小游戏制作的心得与体会
- 《互联网架构的设计哲学》
- 软件架构设计的心得
- WEB架构设计的心得
- 项目体会与心得
- 心得与体会
- 心得与体会
- 体会与心得
- 关于设计模式的一些体会
- guestfish系列工具修改镜像文件
- Matlab:信道相关矩阵
- Spring与SpringMVC的容器关系分析
- Android系统一些默认值的设置
- Word Search
- 关于互联网架构设计的心得与体会
- 使用FindBugs-IDEA插件找到代码中潜在的问题
- 全志H3平台DMA框架
- Yii基于RBAC的权限系统
- 浅谈协方差矩阵-统计学的基本概念
- 互联网的来袭,产品的丰富,电商如何确立何为好产品[太原网络营销师]详解
- myeclipse 创建一个验证是否登录的过滤器
- ROS, the Robot Operating System, Is Growing Faster Than Ever, Celebrates 8 Years
- 转~~是否有朋友能对LS,MMSE,LMMSE,ML,MAP,LMS,AR