2024年HarmonyOS鸿蒙最全什么是微服务架构?_微服务架构的提出(3),前端h5开发面试题

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

Spring Cloud Alibaba 相关组件

Spring Cloud Alibaba.png

2、架构演进

微服务架构本身发展了近十年,而之所以诞生了微服务就需要了解一下服务架构演进的历史啦!服务架构大致经历了单体架构、垂直架构、SOA架构和微服务架构的演进历程,接下来我们一起看看这些架构!

2.1 单体架构

单体架构指的是,将整个系统所有的功能都打包成一个jar或war包、并且运行在一个进程中。相信这种架构大家都非常熟悉,小捌是18年开始学Java每天撸的就是单体架构应用,尽管那个时候微服务在国内已经很火了,但是我相信初学者都是这么过来的啦!

**单体架构虽然开发迅速,**但是它存在很多不足之处,这些不足之处我相信经历过的都懂(😖😖我相信很多小伙伴去到公司后,如果上来就让你熟悉一个几十万行代码的单体架构应用,且不说业务多复杂,代码逻辑就能导致三高发作了,多么痛的领悟!!!)。

单体架构不足之处:

  1. 代码耦合严重。修改代码时牵一发而动全身,经常出现改一个bug导致更多bug的情况。在当下效率至上的工作氛围下,单体架构是严重影响开发效率的!
  2. 部署速度慢、对系统影响大。单体架构的每次发版部署都需要一切重来,整个服务都会不可用,相当于JVM中常说的STO(stop the world);而且过大的war包在部署时编译、启动都会很缓慢!
  3. 业务扩展困难。单体架构代码耦合、业务也容易耦合,这会导致新增需求时根本无法迅速扩展。
  4. 扩容苦难。当单体架构服务性能出现问题时,需要进行服务水平扩容,单体架构在这种情况下显得很无力,只能将整个应用都进行扩容,但是往往应用中只有一小部分性能出现问题。
2.2 垂直架构

垂直架构在一定程度上减少了单体架构的代码、业务耦合度,提升了应用程序的伸缩性。垂直架构采取分层的思想,将一个应用程序从结构上拆分成多个维度,最常见的垂直架构就是MVC分层结构的架构模式。垂直架构虽然带来了一定的好处,但是它并未解决单体架构的大部分(几乎所有)问题。

2.3 SOA架构

SOA(Service-Oriented Architecture)面向服务架构,**它的核心思想就是服务化,**服务在SOA架构中,是基本单元。SOA架构通过将系统服务化,通过约定接口进行服务调用、达到资源共享的目的。
SOA架构主要解决了以下问题:

  1. 打破数据孤岛问题。以前的单体架构都是烟囱,系统之间完全没有任何信息交互,这导致了企业内部各个业务系统之间形成了非常严重的数据孤岛问题。基于SOA架构系统服务化之后,通过中立性接口进行服务之间调用,能够达到共享资源、交互数据。数据就是金钱,数据积淀对一个企业的发展至关重要!
  2. 应用解耦。服务化使得系统的进行了业务层面的拆分,原本一个笨重的大系统,根据业务功能拆分为不同的服务单元,这样在无形中将应用进行了解耦。
  3. **服务重用。**在单体架构中,我们只能复用代码,无法复用某一个系统(服务)。经过SOA架构改造后的系统,只要设计的足够好,共享业务是完全可以实现的。比如电商项目中的用户服务、库存服务、商品服务都可以实现一次开发多系统重用。

SOA架构的发展,推动了RPC技术和MQ技术的飞速发展,这也为后来的微服务之间的通信奠定了基础!所以小捌认为微服务架构和SOA架构难舍难分,且微服务架构站在了SOA架构这个巨人的肩膀上。

2.4 微服务架构

微服务架构与SOA架构一样,服务是其架构设计中的基本单元。两者的区别在于侧重点不一样:

  • 微服务侧重服务细粒度的拆分
  • SOA侧重服务化后服务的可复用性

**那是不是说微服务其实就是升级版的SOA呢?**小捌认为也不完全是,SOA中最常见的架构部分就是ESB(Enterprise Service Bus),ESB注重与服务交互和服务集成。微服务最关注的是服务的自治,微服务让整个架构体系更加智能、简单、方便、可靠;比如微服务推动了DevOps的快速发展、推动了云原生的快速发展等等。(不知道小捌这种理解对不对,大家一起讨论哈!!!

现如今的微服务,不在是简简单单的将服务拆分,而是关注与服务之间的通信、服务隔离、功能降级、服务扩展、可伸缩性、敏捷开发、快速部署、高可用、高性能、分布式等等。因此这些技术名词带来了非常庞大的技术生态,加上技术本身更新就非常的迅速,对程序员来说确实是一个不小的挑战。但是别怕,小捌和大家一起学习,一起进步!!!关注我,后续两个月持续输出Spring Cloud生态相关知识。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值