系统设计思考
发表于 2015 年 6 月 6 日
读了微信架构描述后的一点思考
模块拆分:设计大系统,一定要拆分子系统,模块,项目,做到各项目间相互独立。在较小的系统设计中一般将模块划分清晰即可了,甚至是在一个进程之内,大一点在一台物理机上多进程实现,但在海量系统设计中,本身就是分布式的系统设计。不但要将其逻辑分离,还要注意其物理的分离,微信中登录状态服务器,LBS服务器,支付系统,摇一摇系统均为独立的服务器。很多互联网服务的设计,都注意将用户登录,后端不同业务都互相分开,这样一来各系统都可独立研发与部署。但在更新版本时务必注意系统间接口的兼容性。
扩展性:这里的扩展性,一是指协议的扩展,二是指数据存储的扩展,个人认为还包括处理能力的扩展。互联网业务一个特点便是技术日新月异,每个想法都可变为现实。一个负责文字通信的IM,增加语音与视频的支持,需要修改协议。朋友圈业务的增加也涉及协议,后来有的钱包等各种业务无一不涉及通信协议的变化。通信协议不光设计客户端服务器之间,如果服务器之间不同业务的交互接口看作协议的话,其实也都涉及扩展性及兼容性的问题。笔者从事多年的radius/diameter/eap等协议,虽然是传统通信的协议,其均具有非常良好的扩展性。关于数据存储方面,在NOSQL之前,都是基于固定字段的存储方式,但随着互联网业务的发展,各种业务产生的字段/列数量巨大,且大部分可能取值为空,目前主要用的KV,列存储等NOSQL存储了。关于处理能力的扩展,则涉及负载均衡,缓存,模块数量变化时一致性哈希选择模块等问题
快速部署:一个系统的上线,很难想象没有监控时是怎样的,必须有良好的各系统运行状态的监控系统。为了快速迭代,还要有良好的快速代码部署组件。
灰度发布:跟上述的代码部署也相关联。发布时先让一部分用户切换到新系统,慢慢扩充用户范围。
容灾:一个系统可以分成接入层,逻辑层,存储层。接入层与逻辑层的容灾非常成熟,在逻辑层,尽量使用无状态的设计,这样消息到达后可随意切换服务器,在哪里处理都一样。笔者的AAA服务器在涉及多步交互时,为了性能考虑则必须将交互中间的信息存储到内存中,这便是有状态的设计了,这么一来消息分发到其他模块必然无法接续。但是如果使用存储系统,性能又受影响。只能权衡。
好的系统一定是简单的,处理海量数据的系统允许存在一定的短时数据不一致性, 如果验收标准成了严格的一致性,系统必将复杂很多很多。
分享到:
相关推荐
其次,物联网技术支持下的智能仓储管理系统设计思考中,涉及到了网络环境的搭建和系统结构的设计。网络环境的搭建是构建智能仓储管理系统的基础,它包括了有线网络、无线网络和传感器网络等不同层次的网络技术。有线...
《MSP430系列16位超低功耗单片机实践与系统设计》这本书是针对TI(Texas Instruments)公司的MSP430系列单片机深入实践和系统设计的一份宝贵资源。该书的随书光盘包含了丰富的学习材料,旨在帮助读者更好地理解和...
交通信号灯的自动控制系统设计思考问题包括: 1. 该控制系统是否属于顺序控制?是那种结构? 2. 该控制系统工作步如何划分?共有多少工作步? 3. 输入/输出信号有哪些? 4. 信号转换关系 五、PLC的I/O分配接线图 ...
产品生命周期是产品系统设计思考的基础,从原材料获取到产品的废弃和再生,每个阶段都是产品功能实现的一部分,并且相互关联。产品设计不仅要考虑制造过程中的效率和质量,还要关注产品使用后的回收、再利用和处理,...
总的来说,这个JAVA简单学生管理系统项目不仅提供了实际的代码实现,还包含了完整的系统设计思考,对于学习JAVA编程、数据库操作以及软件工程实践具有很高的参考价值。通过这个项目,开发者可以深入理解JAVA后端开发...
此外,对于每一道试题,都应思考其背后的工程背景和设计原则,这将有助于形成全面的机械系统设计思维。 总的来说,这份资料是学习机械系统设计的宝贵资源,它不仅可以帮助学生准备期末考试,还能促进他们对机械系统...
《Verilog数字系统设计教程》是由夏宇闻老师编著的一本深入讲解Verilog HDL(硬件描述语言)的教程,适用于电子工程、计算机科学等相关领域的学习者。Verilog是集成电路设计中广泛使用的语言,它允许设计师以抽象的...
第三章 产品系统设计-方法-图解思考.pptx
5.3.2 MC9S12DG128最小系统设计 思考题 第6章 智能汽车设计实践??光电管型设计 6.1 机械设计 6.1.1 光电管传感器的布局 6.1.2 舵机的安装 6.1.3 测速传感器的安装 6.2 硬件设计 6.2.1 HCS12控制核心 6.2.2 电源管理...
5.3.2 MC9S12DG128最小系统设计 思考题 第6章 智能汽车设计实践??光电管型设计 6.1 机械设计 6.1.1 光电管传感器的布局 6.1.2 舵机的安装 6.1.3 测速传感器的安装 6.2 硬件设计 6.2.1 HCS12控制核心 6.2.2 电源管理...
5.3.2 MC9S12DG128最小系统设计 思考题 第6章 智能汽车设计实践??光电管型设计 6.1 机械设计 6.1.1 光电管传感器的布局 6.1.2 舵机的安装 6.1.3 测速传感器的安装 6.2 硬件设计 6.2.1 HCS12控制核心 6.2.2 电源管理...
5.3.2 MC9S12DG128最小系统设计 思考题 第6章 智能汽车设计实践??光电管型设计 6.1 机械设计 6.1.1 光电管传感器的布局 6.1.2 舵机的安装 6.1.3 测速传感器的安装 6.2 硬件设计 6.2.1 HCS12控制核心 6.2.2 电源管理...
"电动汽车电池系统安全设计与制造的思考" 电池系统安全设计与制造是电动汽车行业中的一个关键因素。随着新能源汽车的快速发展,电池及电池集成技术也得到了飞速发展。动力电池是电动汽车能源载体,同时也是影响电动...
5.3.2 MC9S12DG128最小系统设计 思考题 第6章 智能汽车设计实践??光电管型设计 6.1 机械设计 6.1.1 光电管传感器的布局 6.1.2 舵机的安装 6.1.3 测速传感器的安装 6.2 硬件设计 6.2.1 HCS12控制核心 6.2.2 电源管理...
图书借阅管理系统的设计思考主要包括以下几个方面: 1. 功能需求分析:系统应具备基础的图书信息录入、查询、借阅、归还、预约、超期罚款等功能。同时,为了满足用户需求,系统应提供个性化推荐、图书评价、阅读...
【建筑智能化系统设计深度的思考】探讨了在当前科技飞速发展的背景下,建筑智能化系统设计的重要性和具体实施策略。文章指出,随着建筑技术的进步和高新技术的广泛应用,人们对建筑智能化系统的期望日益提高。智能...
《verilog-数字系统设计课程》(第三版)-夏宇闻习题答案
从应用的角度,详细地介绍了MCS-51单片机的硬件结构、指令系统、各种硬件接口设计、各种常用的数据运算和处理程序、接口驱动程序以及MCS-51单片机应用系统的设计,并对MCS-51单片机应用系统设计中的抗干扰技术以及...
第二部分共10章,即设计和验证篇,可作为本科高年级学生或研究生学习数字系统设计的参考书。第三部分为实践篇,共提供12个上机练习和实验范例。第四部分是语法篇,即Verilog 硬件描述语言参考手册;IEEE Verilog...