当前位置: 首页 > 后端技术 > Node.js

web 全架构系列(一)- 整体分层及各层模块化

时间:2023-04-03 18:34:29 Node.js

Web全架构系列(一):整体分层,各层模块化承载上层应用流量的无关平台。下面是这个平台的几个特点:业务独立性:不管是什么业务形态,都可以在这个架构上运行。这里可能有几种情况,比如无状态服务,Long-termconnectionservices等等,后面会根据场景来描述,但是这些场景可以看成是一个有限的集合。可扩展性:这里的可扩展性指的是两个方面,一是业务的扩展,二是流量的增加。两者都是任何平台的重要考虑因素。根据不同的指标,业务可以分为几类。这里希望有两个指标来描述本系列文章想要覆盖的场景,以说明业务无关性能:按状态:分为无状态服务和有状态服务按实时:分为分为异步和实时应用程序。这两个指标可以任意组合,但最常用的组合应该属于stateless-asynchronous和stateful-real-timeapplication,但是stateless-real-time应用程序通常是有的。例如,博客系统可以看成是无状态-异步应用,而一对一聊天应用可以看成是无状态-实时应用,而大多数网络游戏都是有状态-实时应用。需要注意的是,业务场景并不会严格按照上述概念来区分,大部分最终会形成无状态与有状态、异步与实时并存的状态。服务化是可扩展性的基石。这也是本文首先要描述的整体架构。单机应用会在后期造成一些棘手的问题,所以这是一开始就需要考虑的事情。文章将主要讲述以下几个部分:应用分支和模块化、持续集成、有状态长连接应用扩展性设计、Web端构建和模块化微服务的存在,导致应用分散在几个服务器集群中。如何有效管理集群是一个比较大的话题,但是目前业界已经有了比较一致和完善的技术解决方案,比如k8s、rancher等,尤其是云服务商的出现,把硬件这个最复杂的环节给掩盖了管理,所以我们不会在这里讨论容器编排相关主题。应用分层和模块化