系统架构进化历程以及优缺点

时间:2024-03-23 10:19:39

微服务的提出:james Lewis & Martin Fowler 在2014年3月25号在一篇《Microservice》中提出微服务

《Microservice》原文:https://martinfowler.com/articles/microservices.html

微服务是一种架构风格,并具有如下特点:

                                                                        一系列微小服务共同组成

                                                                        跑在自己的进程里

                                                                        每个服务为独立的业务开发

                                                                        独立部署

                                                                        分布式管理

系统架构

系统架构的发展历程:

                                   系统架构进化历程以及优缺点 ps:本图来自Dubbo官网

单体架构的优缺点:

优点:容易测试:由于没有外部依赖,可以在本地完全启动系统,所以很容易测试。

           容易部署:系统是一个整体,只需要把项目打包,既可以发布。

缺点:开发效率低:项目是整体架构,代码之间相互依赖过于强,开发者之间很难协作,代码也容易冲突。

           代码难维护:业务代码庞大且在一起,很难梳理清晰。

           部署不够灵活:构建时间长,项目中任意一处修改都需要进行重新打包发布,浪费时间,资源。

           稳定性不高:项目中任何一个位置出现问题,项目整体崩溃,牵一发而动全身。

           扩展性不够:项目需要负载均衡时,单体架构的项目很难做到。

前后端分离架构的优缺点:

优点:减轻服务器压力:js能够处理大多情况的数据处理。

           界面友好:后端服务器出现bug,不会直接显示到前端页面。

缺点:如果是 PC 端的站点,需要考虑是否需要强支持 SEO ,前后端分离的架构,很可能需要搜索引擎的 spider 执行完 js 才能得                        到完整的可收录的页面,而“执行 js ”并不是所有搜索引擎都支持的,此时势必影响站点的收录。

分布式架构:

定义:旨在支持应用程序和服务开发,可以利用物理架构由多个自治的处理元素,不共享主内存,但通过网络发送消息合作

                                                                                                                                                                       ------------Leslie Lamport

微服务架构的基础框架/组件

服务注册发现:服务提供方注册,并将本身的地址以及字节信息提供,由服务调用方来发现,并正确使用。

服务网关(Service Gateway):对外屏蔽后台的具体实现细节;具有路由功能,能够将外部请求指向内部具体的微服务;认证,授权,安全,限流等功能。

后端通用服务(也称中间层服务Middle Tier Service):

前端服务(也称边缘服务Edge Service):