Spring Cloud 微服务项目实战
姚秋辰(姚半仙)
PayPal 研发经理
15861 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 38 讲
结束语 (1讲)
Spring Cloud 微服务项目实战
15
15
1.0x
00:00/00:00
登录|注册

01 | 是什么推动了单体应用到微服务架构的演进?

你好,我是姚秋辰。
“微服务”是近些年在大型应用架构领域的一个热门话题,从实践领域来看,我们身边的一二线大厂也纷纷选择全面拥抱微服务。就拿国内 Java 系的一线大厂来说,如阿里系、美团点评、PDD 等,它们都将自己的核心业务系统构建在微服务架构之上。
即便你是刚参加工作的萌新,也一定从铺天盖地的“微服务”相关信息流中了解到了这个名词的热度。谷歌搜索指数显示,自 2014 年起,微服务的搜索热度一路上升。
“微服务”的谷歌搜索指数
其实,微服务并不是一个新兴的技术概念,很早之前它就已经进入了公众视野。
早在 2012 年,一位叫做 Fred George 的技术专家就在一次大会上分享了自己的微服务落地经验,讲述他是如何带领团队将一个极度庞大的 J2EE 巨无霸程序,分解成 20 多个小服务的。作为微服务领域的先驱,他是这样描述微服务架构的:
Micro Services Architecture - small, short lived services rather than SOA.
如果你在工作中没有接触过微服务架构的系统,那么此时一定非常蒙圈,不明白大佬所说的微服务架构到底是什么。没关系,就让我带你去回顾微服务的发展历史,了解微服务解决了什么痛点;然后我们一道来分析微服务架构的优势,让你明白为什么如今一线大厂会采用微服务架构。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

微服务架构是当前互联网技术领域的热门话题,其兴起源于对单体应用在生产力和高可用性方面面临的挑战。通过将巨无霸应用拆分成独立的小型微服务应用,采取“微服务”化的方式,可以有效解决开发效率低下、发布周期长、回滚困难等问题。微服务架构的优势在于提高了开发效率,实现了快速迭代,降低了发布风险,增强了系统的可维护性和可扩展性。微服务架构还具备“独立演进”能力,可以快速部署、独立测试,并借助Docker和CI/CD完成快速上线。此外,微服务架构还能大幅降低协作成本、提高资源利用率和实现高可用。然而,微服务架构也面临着诸如集群环境下的服务治理、数据一致性、以及高并发场景下的服务容错等问题。总的来说,微服务架构通过拆分庞大的单体应用为更细粒度的小型服务,适应了互联网行业的快速迭代和高可用保障的要求。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Spring Cloud 微服务项目实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(22)

  • 最新
  • 精选
  • 老师您好,我是在银行工作,目前公司采用企业服务总线来实现SOA,感觉已经解决了单体应用过于庞杂的问题。老师直接从单体应用到微服务,跳过了SOA,与我工作中遇到的实际不符。请问可以讲一讲SOA到微服务的必要性吗

    作者回复: SOA已经是用拆分服务的思想治理业务了,目前也确实多在一些金融银行业运用了,在这些行业里没有可见的必要性来替换到微服务架构,改造成本大不说而且容易破坏稳定性。但我了解的部分IT建设搭建的比较完善的银行,比如招行软开,已经在新系统中使用微服务化的架构了(不是银行业从业者如信息有误请指正)。 其实你可以把技术升级看做一个balance的过程,替换成本和必要性,学习成本实施成本等等,有时候对于已经构建在庞大业务体系之上的老技术栈,没必要为了追新而追新。就像阿里虽然开源了dubbo,但是淘系内部用的最多的还是稳如老狗的HSF,反而是PDD这类新公司在用dubbo技术,因为没有历史业务的包袱。而很多大公司历史包袱种,至今连上云都无法推行,就比如可口可乐的ERP系统始终不敢迁移到SAP的SaaS方案上。银行业一个道理。 技术发展总是不断向前的,就像当年使用SSH,现在使用spring boot,两者都能很好构建API,但是从开发成本和社区支持来看,新技术明显有更大的可持续性。当技术升级的balance在新技术一侧有了明显的优势,自然而然就会升级替代,就像很多传统企业逐步将单体集群化改为微服务化一样。

    2021-12-18
    4
    13
  • 前行
    公司用的跟老师讲的cloud组件差不多,正好可以系统学下

    作者回复: 哈哈,这家公司简直是太优秀了!

    2021-12-15
    9
  • Better me
    老师想问下微服务和SOA的本质区别是什么

    作者回复: 用大白话讲,区别就是卷呗!其实SOA已经应用了服务拆分理念,但微服务更卷,应用一系列领域建模DDD等拆分理论,在领域治理方面粒度也更细。 当然在技术层面上为了达到独立开发测试运维的微服务价值观,在大厂实践中把“自立门户”这一点推行的比较彻底,一个比较直观的感受是,独立DB(很多SOA架构的系统也是共享DB),更加全面彻底的devops文化和容器编排方案,而且相比SOA来说微服务没有所谓的“企业总线”这一层,取而代之的使用服务治理方案构建端到端的调用(当然了在最外层还是有个网关的),诸如此类

    2022-01-03
    7
  • Rorchachl
    业务上了一定规模之后,再通过集群化水平扩展的方式,将单体应用部署到一个集群中,承接更大的用户访问量。 半仙老师 我有几个问题想咨询下 用户是怎么访问到集群中的单体的? 集群中的单体是一份还是多份? 集群是如何承接更大的访问量的呢

    作者回复: 用户并不知道自己的请求会路由到哪里,你在浏览器打开一个网址,在这个背后会请求DNS服务器做解析然后将请求路由到你的网关。我们以单体应用集群化部署来说,在网关背后你可以将集群里的机器配置到一个VIP里,也就是虚拟IP,可以通过keepalived LVS构建这个虚IP集群,也有的财大气粗的公司用贵的要死的F5来做,网关将请求转发到VIP上,在这个VIP池内通过负载均衡再把请求转发到处于live状态的单体应用节点上。当然,大型应用往往不止一个网关,他们还会再内部网络环境里构建多个zone,一个请求往往经历了多个网关转发。 对单体应用来说,承接更大的用户量可以通过水平扩展,可以认为集群中有很多很多的单体应用,多重影分身之术。 Forget it,马上讲微服务了,就不去想着单体应用啥事儿了,后面有的爽的

    2021-12-14
    7
  • 杨逸林
    老师,我看贝宝的页面好像都还是用的 Bootstrap,不能说丑吧,只是感觉有点过时了。后端已经全改成微服务了?我问了一个贝宝的员工(外包),贝宝是大小周,这么好的吗?还招人吗?贝宝不是最近几年才在中国成立北京和上海的公司吗?

    作者回复: paypal后面几千个微服务还是很庞大的,不过页面层为了安全因素,所以没用纯前端渲染的酷炫效果,很多地方用了bff层渲染。 贝宝那个大小周(每6周一次3天休假)不是永久政策,只是在疫情期间的特殊政策,大家理性看待哈。和其它外企比较的话,这边工作时间里还是安排的很紧凑的,但毕竟是外企所以涨薪嘛不能跟互联网公司比,这点也要有心理预期。PP在国内成立已经很久了,感兴趣的话,可以搜索公众号“PayPal招聘”,有看中的职位随时找我内推哈

    2021-12-14
    2
    7
  • ziky
    老师你好,什么时候开放全部课程呀

    作者回复: 下周开始是以每周三篇的进度来更新,前几课先来几道前菜,后面基本每篇都是动手做项目实战的系列。 实战项目的源码会开放的比较快,基础好的同学可以去把玩一下源码,从源码里也能了解下后面章节的内容。

    2021-12-13
    7
  • Colorful3
    老师您好,我是一个自由职业开发。 前几个月做了一个外企的外包项目,也是我第一次实际工作中使用 spring cloud技术栈,如今刚好外包项目做完了没什么事,回过头来学习巩固下。 也与您分享下他们公司的技术选型: - 微服务框架: Spring Cloud Hoxton.SR8,Spring Boot 2.3.5.RELEASE - 持久层框架:Baomidou Mybatis-plus 3.4.1 - 微服务技术栈:zuul gateway,openfegin,ribbon,eureka等 - 数据库连接池:Alibaba Druid 1.1.3 - 动态数据源:Baomidou Dynamic-datasource 3.3.3 - 缓存框架:redis - 日志打印:logback - 配置中心:apollo 1.7.0 实际做完了这个项目,再结合您课程中所讲到的点,确实体会颇深。目前也学习研究了市面上所讲的一些spring cloud alibaba课程,基本都是停留在基础使用、搭建跑通的层面上,我自己研究也遇到一些技术难点,官方文档和网上也鲜少查到解决方案。看了前两讲内容,也对后面的内容非常期待。 希望后面跟随老师一起学习!加油加油!

    作者回复: 这个选型是十分稳健的选型,整体用的netflix技术栈,我在之前也做了几年netflix,后面逐步转向alibaba组件的。netflix风格会感觉非常沉稳,alibaba组件挺跳的哈哈,能玩出花头。 碰到的技术难点可以在评论区交流,专栏里的内容未必会涉及的非常深入,在评论区可以尽情讨论

    2021-12-19
    3
    5
  • 易燃易爆闻一多
    现在客户的新项目,在某基金。就是微服务架构albb的套件。但是没有用到过seta和sentinel因为,tob的业务访问量很小。数据也是只读不写。数据是核心系统产生,当初感觉用微服务纯粹冗余。结果甲方要求做容灾和负载。。顺利无缝扩展

    作者回复: 是的,seata是个双刃剑,非必要不要上这种重量级的一致性解决方案,事务性消息+补偿+日志表就是一种可靠廉价的一致性方案了。sentinel还是很好用的,但开源sentinel需要做一系列改造实现规则持久化,使用阿里云自有的服务就省点事儿了

    2021-12-28
    4
  • Jaising
    半仙老师,像2B,2G许多行业专网内大流量低并发系统,也会做关注点分离、服务拆分,但是大多数服务都是单点部署也不会遇到性能瓶颈,也适合用微服务嘛

    作者回复: 回想起以前在SAP的时候,巨复杂的超级巨无霸单体应用也能过的很滋润,还贼稳定。甚至兄弟部门像successfactor这样的巨型saas也是单体,其实这种应用拆成微服务反而会搞的bug满天飞。能跑,能抗住,就成了管他是不是微服务呢,同学说对不对

    2022-03-29
    3
  • 6点无痛早起学习的和尚
    公司没有完全用开源那套微服务框架。 微服务技术栈: 内部调用:dirpc/thrift 服务发现和注册:disf 配置:Apollo(不是携程那个) 限流熔断:911

    作者回复: 限流熔断叫911,这个框架起名我要给个老铁双击666啊。起名字的这老哥是个人才

    2021-12-24
    3
收起评论
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部