【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化

这篇具有很好参考价值的文章主要介绍了【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.服务架构的演

1.1 单体架构

单体架构应该是我们最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。

1.2 集群

针对单个服务器在访问量越来越大的情况越来越吃力的情况,我们可以考虑服务器的集群话处理。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

集群的部署大大提高了服务的处理能力,同时利用Nginx提供的负载均衡机制,来分发请求,使用户的体验没有改变。

1.3 垂直化

上面的集群部署是可以解决一部分的服务器压力,但是随着用户访问量的增多,集群节点增加到一定阶段的时候,其实作用就已经不是太大了,因为将所有的业务都集中在一起,造成耦合度很高,这时我们可以考虑业务的拆分。来提高系统的性能。比如将原来在一个系统里面的业务拆分为用户系统,订单系统和商品系统。也就是我们讲的垂直化拆分如下:

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

服务垂直化拆分后是可以大大的提高整体的服务处理能力,但是也会出现很多的冗余的代码,比如用户系统要操作订单库,要操作商品库,订单系统也有可能要操作用户库和商品库等。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

1.4 服务化

针对垂直化拆分出现的问题,这时就出现了我们经常听到的SOA(面向服务的架构).什么是SOA呢?在《微服务设计》中有这么一段描述

SOA是一种设计方法,其中包括多个服务,而服务之间通过配合最终会提供一系列功能,一个服务通常以独立的形式存在于操作系统进程中,服务之间通过网络调用,而非采用进程内调用的方式进行通信。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

业务重用,共享服务,

1.5 微服务化

在SOA的基础上继续演进就是我们讲的微服务。SOA的服务更细粒度的拆分后就是微服务。根据时间递进。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

对基础运维的要求能力会越来越高,虚拟化,容器话等。

微服务和SOA的区别:

1.思想上:微服务的目的是解耦而SOA的目的是实现数据的互通和共享性。

2.协议:微服务会使用一些轻量级的通信协议(Restful API)

3.基础设施要求,微服务更加强调开发运维的持续交付。

2. 微服务架构的需求

2.1 RPC框架

在微服务架构中,服务与服务之间要实现接口的调用我们肯定要通过相关的RPC(Remote Procedure Call)框架来实现。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

常用的RPC框架有:Dubbo,Google的GRPC,Apache的Thrift,微博的Motan,京东的EasyRPC等。我们通过RPC框架可以取调用服务提供者提供的服务,但有一个前提是我们要能找到这个服务。通常我们的服务部署都是集群多节点的部署,所以在消费者这端就不可能直接写死在代码里面,这时就涉及到了服务的发现问题,这时就需要另一个组件注册中心了

2.2 注册中心

注册中心实现服务地址管理的功能,解决服务动态感知(上线,下线)。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

2.3 负载均衡

在服务注册中心的介绍中我们可以看到负载均衡的应用。我们可以通过Ribbon来实现客户端的负载均衡,负载均衡的策略可以是:轮询,随机,根据响应时间来计算权重的轮询等。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

2.4 配置中心

在微服务架构中我们有很多个服务,而每个服务中是都会有单独的配置文件的。里面有很多的配置信息的有关联的,而且对于后期的更新维护也会非常的不方便,这时配置中心就上场了。常用的配置中心有:apollo/Nacos/disconf/zookeeper/diamond/Spring Cloud Config

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

2.5 网关

网关可以帮助我们完成用户请求的入口,路由。完成统一授权,日志的记录,权限的认证和限流及熔断操作。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

2.6 限流、降级、缓存

在现实的微服务架构中的性能是很难满足所有的用户请求,这时我们就可以通过一些措施来保证我们的核心服务的正常运转。

限流:sentinel、hystrix

降级:主动降级(订单评论、广告关闭)、被动降级

缓存:降低数据源访问频率、Redis等

容错机制:服务出现挂机,宕机之后的处理机制。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

2.7 Bus

Bus消息总线,实现异步化的通信机制。

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群

2.8 链路监控

因为微服务中的服务实在是太多了,为了能更好的监控个服务的情况,肯定就需要链路监控服务,我们可以通过sleuth+zipkin来实现,应用层监控,系统级监控

【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化,分布式,Spring boot,业务场景实例问题,系统架构,微服务,集群文章来源地址https://www.toymoban.com/news/detail-668235.html

到了这里,关于【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【业务功能篇73】分布式ID解决方案

    1. 基于UUID 2. 基于DB数据库多种模式 ( 自增主键、 segment) 3. 基于Redis 4. 基于ZK、ETCD 5. 基于SnowFlake 6. 美团Leaf (DB-Segment 、 zk+SnowFlake) 7. 百度uid-generator () UUID: UUID 长度 128bit , 32 个 16 进制字符,占用存储空间多,且生成的 ID 是无序的 ; 对于 InnoDB 这种聚集主键类型的引擎来说,

    2024年02月12日
    浏览(42)
  • 深入浅出 -- 系统架构之单体架构

    单体架构(Monolithic Architecture)是一种传统的软件架构模式,将整个应用程序作为一个单一的、统一的单元进行开发、部署和扩展。在单体架构中,所有的功能模块都被打包在一起,共享同一个代码库和数据库。 例如,在网上商城系统中,JavaWeb工程通常会被打成WA R包部署在

    2024年04月10日
    浏览(53)
  • 网络系统架构演变

    随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mesh。我们到底是该乘坐微服务

    2024年02月13日
    浏览(42)
  • 互联网系统架构演变

    目录 1. 程序三高 1)高并发 2)高性能 3)高可用 2. 传统架构 2.1 提高服务器性能(单机) 2.2 增加服务器数量(DNS 负载均衡) 2.3 负载均衡 负载均衡的功能总结 负载均衡种类 负载均衡——主流的软件解决方案 Apache + JK Nginx 优点 Nginx 配置 配置反向代理 动静分离 轮询机制

    2024年01月23日
    浏览(54)
  • 系统架构演变

    系统架构的演变 2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思想已经不能满足互联网高并发、大流量

    2024年01月19日
    浏览(36)
  • 带你了解软件系统架构的演变

    软件系统的架构是在系统设计过程中最关键的决策之一。随着技术的不断发展和需求的变化,软件系统的架构也会经历不同的演变和发展阶段。本文将介绍软件系统架构的概念,探讨软件系统架构的演变过程,并通过具体案例分析不同阶段下的架构特点和挑战。 1、软件系统

    2024年02月21日
    浏览(42)
  • 【Spring Cloud Alibaba】第 2-4 节 - 系统架构演变

    目录 一、单体应用架构 二、垂直应用架构  三、分布式架构  四、SOA架构  五、微服务架构 前后端分离 单系统拆分 抽取公共代码为服务层 引入服务治理中心: 维护复杂的服务调用关系 微服务的原子化拆分: 最小为止

    2023年04月09日
    浏览(45)
  • 从公共业务提取来看架构演进——功能设置篇

    上一篇文章我们以帐号权限的提取为例,介绍了 当架构跟不上业务发展时 及时调整架构的一种思路。这篇文章我们以功能设置为例,进一步讨论公共业务提取这个话题。 功能设置在本文中是指产品开放给企业和用户的一些功能设置项,以视频会议产品为例示意如下: 上面示

    2024年02月05日
    浏览(39)
  • [架构之路-221]:鸿蒙系统和安卓系统的比较:微内核VS宏内核, 分布式VS单体式

    目录 一、鸿蒙系统和安卓系统的系统架构 1.1 鸿蒙系统的分层架构 1.2 安卓系统的分层架构 1.3 鸿蒙系统和安卓系统是操作系统吗? 二、鸿蒙系统和安卓系统的系统架构比较 2.1 它们与Linux操作系统的关系 2.2 架构比较 三、操作系统基础 3.1 微内核架构 3.2 宏内核架构 3.3 传统

    2024年02月07日
    浏览(45)
  • Spring Cloud Alibaba 微服务1,系统架构演变 + Nginx反向代理与负载均衡

    🏆作者简介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 , 专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于 Java基础教程系列(进阶篇) ,本专栏是针对大学生、初级Java工程师精心打造, 针对Java生态,逐个击破,

    2024年02月02日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包