常见应用系统设计须知

大多优秀的开源的后端程序,通常有三个部分组成,而这些都完全独立开发。

协议

本质是有对外沟通(通讯)的需求,服务于client与server。

  • 大多数情况下,我们采用内置的通用网络协议(http或各种rpc)
  • 也可以自定义网络协议,只需提供序列化和反序列化函数,就可以定义出自己的

算法

常言道:数据是稳定的,处理是多变的,而算法着手于在稳定的数据结构中,提供高效丰富的计算,评估它的标准在于时间及空间复杂度。

通用算法有:sort,merge,map-reduce等

任务流

任务执行的宿主是线程,常见的基础任务:通讯,文件IO,CPU,GPU,定时器,计数器

  • 任务流就是实际的业务逻辑,就是把开发好的协议与算法放在流程图里使用起来
  • 所有任务都是同步或异步执行的
  • 典型的任务流是一个闭合的串联操作,复杂的业务逻辑,可能是一个非闭合的DAG

当然我们知道了这些,就可以系统化的思考我们在构建系统的过程。

 


版权声明:本文为itsoftchenfei原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。