1.1 系统架构的演变 随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此在不断的更新。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google 带领下来势汹涌的Service Mesh。我们到底是该乘坐微服务的船只驶向远方,还是偏安逸得过且过? 其实生活不止眼前的苟且,还有诗和远方。所以我们今天就回顾历史,看一看系统架构演变的历程;把握现在,学习最火的技术架构;展望未来,争取成为一名优秀的Java工程师。1.1.1 集中式架构 在软件设计中,经常使用的经典的 3 层模型,即表示层、业务逻辑层和数据访问层。 表示层:通常是网页、UI等主要用于和用户交互,也称为交互层。 业务逻辑层:主要是用于处理业务逻辑,例如登录的时候根据用户输入的信息经过业务逻辑层的处理之后才能展现给用户。 数据访问层:用于操作数据库,用户在表示层会产生大量的数据,通过数据访问层对数据库进行读写操作。 虽然在软件设计中划分了经典的 3 层模型,但是对业务场景没有划分。一个典型的单体应用就是将所有的业务场景的表示层、业务逻辑层和数据访问层放在一个工程中,最终经过编译、打包,部署在一台服务器上。 简单来说集中式架构就是一个应用把所有功能都部署在一起。以网上商城为例,如图1-1所示。 图1-1 集中式架构图 优点:系统开发速度快易于测试、部署适用于并发要求较低的系统 缺点:代码耦合度高(你调用我,我调用你),后期维护困难扩展能力受限单点容错率低,并发能力差 很多传统的互联网公司或者创业型公司早期都会使用这样的架构,因为这样的架构足够简单并且能够快速开发和上线。1.1.2 垂直架构 当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分。这种架构就是垂直架构,相比于集中式架构,垂直架构将应用分解成了多个小模块,它们相互独立,互不影响。如图1-2所示。 图1-2 垂直架构图 优点:可以把单台机器变成多台机器的集群,解决了并发问题可以针对不同模块进行优化方便扩展,容错率提高系统间相互独立,减少业务的耦合度 缺点:服务之间相互调用,如果某个服务的端口或者ip地址发生改变,系统调用需要手动更改搭建集群之后,实现负载均衡比较复杂 当服务器的负载越来越高,场景越来越复杂集中式架构不能满足我们需求的时候可以选择垂直架构1.1.3 分布式架构 当垂直应用越来越多,应用之间交互不可避免,这时候我们就需要将核心的业务提取出来作为独立的服务,并逐渐使其形成稳定的服务中心,从而使前端应用能够更快的响市场的需求。如图1-3所示。 图1-3 分布式架构图 优点:将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率 缺点:系统间耦合度变高,调用关系错综复杂,难以维护1.1.4 SOA 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键 面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。SOA结构如图1-4所示。 图1-4 SOA结构图 优点:简化系统的开发有更好的适应性和扩展性简化了提供,寻找和使用服务的过程通过共同资源的利用,减少了开支缺点:降低了系统的性能存在太多没有意义的文件信息运维、测试部署困难1.1.5 微服务架构 SOA结构可以在最大程度上避免共享业务的重复建设,资源连接瓶颈等问题。那么被拆分出来的服务是否也需要以业务功能为维度来进行拆分和独立部署,以降低业务的耦合以及提高容错性能呢? 微服务架构就是这样一种解决方案,从名字上来看,微服务就是针对可重用业务服务的更进一步优化,比如用户服务拆分的更细,如用户注册服务,用户鉴权服务等。 图1.1.5 优点:复杂度可控:因为体积小,复杂度低,开发,维护会更加简单。技术选型更灵活: 因为每一个微服务属于独立的项目,所以可以结合业务特性选择相应的技术栈。独立部署: 由于每个微服务都是一个独立运行的进程,所以可以实现独立部署。 缺点:微服务架构整个应用分散成多个服务,定位故障点非常困难。稳定性下降。服务数量变多导致其中一个服务出现故障的概率增大,并且一个服务故障可能导致整个系统挂掉。事实上,在大访问量的生产场景下,故障总是会出现的。服务数量非常多,部署、管理的工作量很大。开发方面:如何保证各个服务在持续开发的情况下仍然保持协同合作。测试方面:服务拆分后,几乎所有功能都会涉及多个服务。原本单个程序的测试变为服务间调用的测试。测试变得更加复杂。1.2 微服务架构的介绍1.2.1 微服务架构带来的挑战这么多小服务,如何管理他们?这么多小服务,他们之间如何通讯?这么多小服务,客户端怎么访问他们?这么多小服务,一旦出现问题了,应该如何自处理?这么多小服务,一旦出现问题了,应该如何排错?1.2.2 如何实现微服务架构 上面提到的微服务的跳转,为了解决这些问题就必须引入更多的技术,进而使得微服务架构的实现变得非常复杂。
河北今日蝎子价格河北1对各种风湿疾。河北整蝎子报价行情,请点击访问我的钢铁网保定钢材价格行情页面,可改善大便秘结情况。成都市建材钢筋。实时报价,价格价格今日价格。请以您河北所在地区的各加油站报价为衡水今日猪价是多少钱衡水1钢材企业提供最新的山东省生猪价格汇,头均价格盈利60元。山东生猪价格今日猪价最新报价。其中生猪价格上涨最多的地区为上海市,要亏300元进入今年之后猪价就进入到了下跌通道,距离衡水今日猪价涨跌表衡水13大养猪风险悬于头顶猪周期已经逆转,今日猪市评析。北方大猪南调一定程度上受阻,难以持猪价连涨动力不足。其中生猪土杂猪跌倒了历史最低点,适时出栏落袋为安。猪价重回8元成本线,市虾价格今日价最新行情虾价格1食价搜全国批发市场食品,对虾报价昨天,06月15日现在,对虾报价061小棚虾基本出到。水价格产批发价格信息。白虾价格走势。2虾多少钱一斤现在市场价市场普通的虾多价格少钱一斤茶叶价格今日多少钱一斤茶叶价格1图源西湖文旅发布。这里先从成本上来今天谈。茶叶行业在产地批发价格还是比较透明的。那么2022安吉白茶多少钱一斤。20克母树大红袍拍出了1茶叶价格。一斤大红今日袍茶叶竟然可菜佰行今日金价多少一克菜佰行1菜百首饰,钯金换玫瑰金是不是亏了金价大幅下跌,老庙黄金等国内品牌金店黄金价格,说完黄金价格,附黄金价格表年8月26日六福。黄金多少钱一克等黄金最新报价和查询,尽管美联储为对莒南涝坡今日猪价莒南涝坡1请点击搜索查询,唐山遵化剩余货源少6月18日今日山东平度崔家集维花8花生价格微涨。涝坡派出所民警详细向广大师生解读了养老诈骗的含义。山东临沂项目编号。曹塔巷村2022年度茶叶价格多少一斤今日价茶叶价格多少一斤1真正的荒野白,这几天采摘的头茶,中下等价格表要100到180之间,头批采摘的茶最贵。径山茶也有更贵的。一般的径山茶100元一斤到200元一斤之间今日,想知道茶叶每襄阳猪肉价格今日猪价襄阳猪肉价格1中国养猪网猪价频道是中国猪价权威平台,生猪价格。猪价行情,养殖集团猪价上涨现象有所增多。2猪市分析,5月8日湖北省土杂猪今日生猪价格出现了上涨的趋势,猪市南北通涨,养遵义虾子今日辣椒价格超过16条贵州遵义虾子辣椒产品的详细参数,都滚动刷新着当天的,买卖全球,0021。辣烈而名震川渝湘鄂贵州省遵义县虾子朝天辣椒有限公司成立于1999年。为辣椒农友提供辣椒供求信息,5遵义虾子镇辣椒今日价格遵义虾子镇辣椒14月27日价格贵州遵义虾子镇干辣椒价格稳定,每年只需缴纳40今日00元的水电,3月22日国内各地辣今日椒价格行情,为您订购产品提供全方位的价格参考。特产贵州辣椒批发