通俗易懂的方式带你了解微服务

微服务是一种以业务功能为核心的架构风格,强调模块化、独立部署和松耦合。相对于单体应用,它提供更好的可扩展性和技术栈灵活性,但增加了部署复杂性和一致性维护的挑战。微服务的亮点包括独立开发和部署、低耦合高内聚,而缺点主要在于运维难度和网络IO问题。选择微服务还是单体应用取决于具体需求场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  其实微服务没有一个相对官方的定义,来声明这个具体是一个什么东西,在我个人看来微服务更符合一种思想或者说是一种以业务功能为主的服务概念,每一个功能都具有自主运行的业务功能并且不受语言限制。

什么是微服务,为什么要用微服务

  在百度百科介绍中:微服务可以称为“微服务架构”,其中心思想就是单个应用程序有许多松散耦合且可独立的较小的组件或服务组成。
  在维基百科介绍中:微服务是一种架构风格,专注于模块化(单一责任与功能的小型功能模块)为基础,利用模块化组合出复杂的大型应用程序,各功能模块与语言无关的 API 集相互通信。
  与微服务架构理念相反的就是单体应用架构,如果说微服务是由 N 个业务功能模块组成的应用程序,那么单体应用架构就是一个应用程序包含所有的业务功能。

微服务的优点

  1. 易开发,每个模块都有独立数据库(可模块化开发)
  2. 可独立部署(不同模块部署不同的服务器)
  3. 伸缩性强(可根据需求进行需求更改)
  4. 低耦合,高内聚
  5. 技术栈不受限

微服务的缺点

  1. 服务部署较困难(运维同志比较辛苦)
  2. 难以保证一致性(微服务通讯通过 REST,RPC 等形式进行交互,通讯时延迟会受到比较大的影响)
  3. 服务调用跨网络,增加网络IO,降低性能
  4. 服务依赖性,A 依赖 B,B 依赖 C,那就只能按顺序部署 C > B > A

微服务比较单体应用架构的优劣

  在单体应用架构中,每一个业务功能都是不可分割的一步,一个挂掉都会影响整个程序的使用。包括升级也不例外,改一小块地方,整个程序都要重新启动。而微服务每个模块都是独立的存在,即使升级或者模块服务器宏机都不会影响其他模块的使用(关于具体的比较请看另一篇文章,本文主要是介绍微服务“单体架构、分布式架构、SOA 架构之间的爱恨情仇”),补充一点,分布式架构和微服务架构的区别,微服务的应用可能会在同一个服务器上,也可以是不同服务器

总结

  没有一个框架是十全十美的,有优点就会有缺点,还是要按照需求场景来进行开发任务,别为了微服务而微服务得不偿失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的人类

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值