您好,欢迎来到有书房!

六种常见互联网系统架构模式

分类:知识大全作者:互联网王者 发布时间:2017-01-16 15:56:32阅读:2.9万+

引言:六种常见互联网系统架构模式分别是单体架构、集群架构、分布式架构、分布式+集群架构、微服务架构、Serverless架构


六种常见互联网系统架构模式分别是单体架构、集群架构、分布式架构、分布式+集群架构、微服务架构、Serverless架构,各自都有优缺点,只有最合适的架构,没有最完美的架构。


一、单体架构

最初的系统都是单体架构,单体架构的系统也是最容易开发、部署和测试,也是问题最少的,稳定性最高。典型的单体架构,一般情况下都是分为三层,就是所谓的MVC,模型视图控制器三层。系统中间各个模块,互相调用,关联混乱,耦合性越来越高,最后无法拆分,然而,随着企业的发展,需求的不断增加,功能越来越多,整个系统越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。优点有系统整体简单,开发流程简单,模块高内聚低耦合,部署迁移方便等。缺点有模块多、边界模糊、 依赖关系模糊、 代码质量参差不齐,bug修复困难,无法扩展,可靠性差等。


二、集群架构

这里的集群架构是在单体架构的情况下,为了应对大流量高并发系统所采取的一种简单的架构,本质上是同一个业务(单体架构)复制出很多个副本部署在多个服务器中,分散流量,减小压力。好处是系统既有单体架构的优点,又能应对大流量高并发的情况。


三、分布式架构

分布式架构是一种体系结构,它由多个节点组成,每个节点都可以提供服务或处理数据,而且所有的节点之间可以通过网络连接。在分布式应用设计中,这些节点可能会处于不同的物理位置。因此分布式系统是一个业务分拆多个子业务,部署在不同的服务器上,所有子系统共同提供服务,组成一个庞大的对外服务大系统,各个系统之间通过接口进行数据交互。分布式系统,能够均匀的分散系统压力,扩展业务方便,不同的团队负责不同业务,责任清晰,可以灵活的进行子系统部署。在分布式架构中,可以不受开发语言的限制,不同的子系统可以用不同的语言开发。缺点是子系统之间的交互频繁,增加网络压力,降低系统可靠性,另外分布式系统在数据库事务方面会有严重的问题。因此和单体系统相比,分布式系统在系统容错、网络延迟、分布式事务等都会有不同的问题需要解决。


四、分布式+集群架构


分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。其实分布式系统中的每一个子业务,都可以做集群。原则是先分布式再每个节点做集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样如果某个子业务中的某台服务器如果出了问题,整个系统不会受到任何影响,除非子业务中的所有节点都出现故障,否则基本上是没有影响的,更不会导致整个宕机,这就是分布式+集群部署的优势。


五、微服务架构

微服务架构本质上是分布式服务架构的子集。微服务架构是将系统拆分成很多小应用(微服务),微服务可以部署在不同的服务器上,也可以部署在相同的服务器不同的容器上。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。一个微服务只会关注一个特定的业务功能,所以它业务清晰、代码量较少。开发和维护单个微服务相对简单。单个微服务代码量较少, 所以启动会比较快。局部修改时候,微服务架构无需整体重新部署,只需要重新部署修改的这个服务即可。微服务核心要素是微小的服务,所以和之前提到的通过业务拆分的分布式系统有很大的区别。微服务架构通过更细粒度的服务切分,使得整个系统的迭代速度并行程度更高,但是运维的复杂度和性能会随着服务的粒度更细而增加,微服务架构是现在比较流行的架构。微服务系统要求有服务注册与发现、服务间远程调用、服务降级、服务熔断、服务限流、、链路追踪、持续集成部署、监控报警、API网关、分布式事务等等相关的功能模块。


五、Serverless架构

Serverless就是无服务器架构。无服务器架构是指服务端逻辑由开发者实现,应用运行在无状态的计算容器中,由事件触发,完全被第三方管理,其业务层面的状态则存储在数据库或其他介质中。无服务架构在当前互联网企业中,普及性还不多,因此这里只是一笔带过。


声明:本文内容版权归原作者所有,未经授权,禁止转载!

声明:本站仅提供内容存储、展示服务,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的虚假信息,谨防诈骗。如发现有害或侵权内容,可联系本站删除!

发表评论

评论

  • 砚冰坚

    总结到位

联系
我们

平台负责人邮箱
282271588@qq.com

关注
公众号

关注官方公众号

下载
安卓版

下载安卓版

回到
顶部