个人名片:
🐼作者简介:一名大三在校生,喜欢AI编程🎋
🐻❄️个人主页🥇:落798.
🐼个人WeChat:hmmwx53
🕊️系列专栏:🖼️
- 零基础学Java——小白入门必备🔥
- 重识C语言——复习回顾🔥
- 计算机网络体系———深度详讲
- HCIP数通工程师-刷题与实战🔥🔥🔥
- 微信小程序开发——实战开发🔥
- 系统SSM框架学习——精通Spring🔥🔥🔥
- HarmonyOS 4.0 应用开发实战——实战开发🔥🔥🔥
- Redis快速入门到精通——实战开发🔥🔥🔥
- RabbitMQ快速入门🔥
🐓每日一句:🍭我很忙,但我要忙的有意义!
欢迎评论 💬点赞👍🏻 收藏 📂加关注+
文章目录
- 什么是微服务?
- 概念
- 单体式架构与微服务架构
- 面向服务的架构与微服务架构
- 微服务架构的优势
- 欢迎添加微信,加入我的核心小队,请备注来意
什么是微服务?
概念
微服务的另一个对比是单体式应用程序。单体式应用表示一个应用程序内包含了所有需要的业务功能,并且使用像主从式架构(Client/Server)或是多层次架构(N-tier)实现,虽然它也是能以分布式应用程序来实现,但是在单体式应用内,每一个业务功能是不可分割的。若要对单体式应用进行扩展则必须将整个应用程序都放到新的运算资源(如:虚拟机) 内,但事实上应用程序中最吃耗费资源、需要运算资源的仅有某个业务部分(例如跑分析报表或是数学算法分析),但因为单体式应用无法分割该部分,因此无形中会有大量的资源浪费的现象。
微服务运用了以业务功能的设计概念,应用程序在设计时就能先以业务功能或流程设计先行分割,将各个业务功能都独立实现成一个能自主执行的个体服务,然后再利用相同的协议将所有应用程序需要的服务都组合起来,形成一个应用程序。若需要针对特定业务功能进行扩展时,只要对该业务功能的服务进行扩展就好,不需要整个应用程序都扩展,同时,由于微服务是以业务功能导向的实现,因此不会受到应用程序的干扰,微服务的管理员可以视运算资源的需要来配置微服务到不同的运算资源内,或是布建新的运算资源并将它配置进去。
虽然使用一般的服务器虚拟化技术就能应用于微服务的管理,但容器技术 (Container Technology) 如 Docker 会更加地适合发展微服务的运算资源管理技术。
单体式架构与微服务架构
单体式架构与微服务架构
传统的应用构建方法专注于单体式架构。在单体式架构中,一个应用内的所有功能和服务都锁在一起,作为一个单元来运行。以任何方式对应用进行增添或改进时,其架构会变得愈加复杂。这使得在不拆开整个应用的前提下,优化应用中的任何单一功能变得更加困难。这也意味着,如果应用中的一个进程需要扩展,那么整个应用也都必须扩展。
在微服务架构中,应用中的每一核心功能独立运行。这样,开发团队可以构建和更新新的组件,以满足不断变化的业务需求,而不必中断整个应用。
面向服务的架构与微服务架构
微服务架构是面向服务的架构(SOA)的一种演进。这两种方法的相似之处在于,它们都将庞大、复杂的应用分解为更易处理的较小组件。由于它们的相似性,人们经常将 SOA 和微服务架构相混淆。二者的主要区别是它们的范围:SOA 是一种企业级的架构方案,而微服务则是应用开发团队的一种实施策略。
微服务架构的优势
微服务可通过分布式部署,大幅提升您的团队和日常工作效率。您还可以并行开发多个微服务。这意味着更多开发人员可以同时开发同一个应用,进而缩短开发所需的时间。
-
加速做好面市准备
由于开发周期缩短,微服务架构有助于实现更加敏捷的部署和更新。 -
高度可扩展
随着某些服务的不断扩展,您可以跨多个服务器和基础架构进行部署,充分满足自身需求。 -
出色的弹性
只要确保正确构建,这些独立的服务就不会彼此影响。这意味着,一个服务出现故障不会导致整个应用下线,这一点与单体式应用模型不同。 -
易于部署
相对于传统的单体式应用,基于微服务的应用更加模块化且小巧,所以您无需为它们的部署操心。虽然对部署时的协作要求更高(服务网格可以辅助这一过程),但之后能获得巨大回报。 -
易于访问
由于大型应用被拆分成了多个小型服务,所以开发人员能够更加轻松地理解、更新和增强这些服务,从而缩短开发周期,尤其是在搭配使用敏捷开发方法时,例如 DevOps。 -
更加开放
由于使用了多语言 API,所以开发人员可以根据需要实现的功能,自由选用最适合的语言和技术。
欢迎评论 💬点赞👍🏻 收藏 📂加关注+
欢迎添加微信,加入我的核心小队,请备注来意
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇