什么是微服务架构?

本文介绍了微服务架构的起源和发展,强调了微服务并非适用于所有场景,而是需要根据业务需求和技术实力灵活选择。作者还提到了SpringCloudNetflix和Alibaba的相关组件,并探讨了单体架构、垂直架构和SOA架构的演进。
摘要由CSDN通过智能技术生成

微服务它是怎么来的(小捌这里在网上搜刮了一些资料)

  1. 2011年5月,微服务这个概念最早在意大利威尼斯的一个软件架构会议上被提出,此时微服务用于描述一些作为通用架构风格的设计原则。

  2. 2012年3月,ThougthWorks(思特沃克)公司的首席咨询师James Lewis在波兰克拉科夫举行的“第33届学术会议”上,做了题为“Microservices-Java,the Unix Way”的演讲,这次演讲他主要谈及:康威定律、DDD、服务的单一职责原则等微服务特性

  3. 随后同年,Fred George在Agile India技术分享大会上正式提出**微服务架构,**他通过讲解自己所在团队如果拆分服务,如何通过MQ(Kafka)进行应用间的解耦,自此微服务架构就真正诞生了。

微服务虽然在现在非常火,但是**微服务并不是一切架构建设的“银弹”!**是否应该选择微服架构作为新项目建设的技术架构,或者原本的老项目是否应该迭代为微服务架构,这些问题都需要结合实际的业务场景、功能需求、技术和运维团队实力、基础设施是否足够扎实等多方面综合考虑之后再做定夺。总之强扭的瓜不甜,生搬硬套肯定是不香的!

微服务架构已经发展了近十余年了,现在国际上关于微服务架构的解决方案不胜其数;而我们常见的解决方案有Spring Cloud Netflix和Spring Cloud Alibaba,虽然微服务架构到现在为止发展的十分成熟,但是它也并不是一蹴而就的,其中的知识点也非常多!🔫小捌将会在2021年最后两个月死磕Spring Cloud,以下两张图小捌会从应用、源码等方面深入研究,需要的小伙伴可以关注小捌,我们一起进步呀!!!🔫

Spring Cloud Netflix 相关组件

Spring Cloud Netflix.png

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架构改造后的系统,只要设计的足够好,共享业务是完全可以实现的。比如电商项目中的用户服务、库存服务、商品服务都可以实现一次开发多系统重用。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

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

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

片转存中…(img-g47cEvGo-1712366615468)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值