微服务 -- 概述
微服务 -- 概述
1. 什么是微服务?
微服务(Microservices):一种架构风格,一个大型复杂软件应用由一个或者多个微服务组成。系统中各个微服务可被独立部署,各个微服务之间松耦合。每个微服务仅关注完成一件任务并能完成的很好;每个任务代表一个小的业务能力。
【总结】:微服务架构就是把一个大系统按照业务功能分解(怎么分)成多个职责单一的小系统,并利用简单的方法使多个小系统相互协作(怎么通信:REST API),组合成一个大系统。
服务拆分:三个火枪手原则
微服务 vs. 微服务架构
-
微服务:强调服务的大小,关注某个点
-
微服务架构:架构思想,强调从整体上对软件系统进行通盘考虑
2. 微服务的优势与挑战?
微服务的优势:
-
解决了复杂性问题
-
开发速度快,容易理解和维护
-
每个微服务可以独立部署
-
每个服务都可以独立扩展
微服务面临的挑战:
-
经验工程
-
微服务分布式特点带来的复杂性:服务之间的发现,服务调用链的跟踪和质量问题棘手
-
分区的数据库体系和分布式事务
-
测试复杂
-
跨多个服务的更改复杂
-
部署复杂
【总结】微服务的挑战:
API Gateway、服务间调用、服务发现、服务容错、服务部署、数据调用
不过,现在一些微服务框架(Spring Cloud,Dubbo)解决了上述问题
3. 微服务常见组件
-
服务注册:服务提供方将自己调用地址注册到服务注册中心,让服务调用发能够方便找到自己
-
服务发现:服务调用方从服务注册中心找到自己需要调用服务的地址
-
负载均衡:服务提供方一般以多实例的形式提供服务,负载均衡就是让服务调用方连接到合适的服务节点
-
服务网关:服务调用唯一入口,网关实现用户鉴权、动态路由、灰度发布、负载限流等等
-
配置中心:将本地化配置信息注册到配置中心,实现程序包在开发、测试、生产环境的无差别性,方便程序包的迁移
-
API管理:以方便的形式编写及更新API文档,并以方便的形式供调用者查看和测试
-
集成框架:微服务组件都以职责单一的程序包对外提供服务,集成框架以配置的形式将所有微服务组件集成到统一的界面框架下,让用户能够在统一的界面中使用系统。
-
分布式事务:重要业务需要通过分布式事务技术来保证数据的一致性
-
调用链:记录完成一个业务逻辑时调用到的微服务,并将这种调用关系展示出来;系统出错时,可以方便找到出错点
-
支撑平台:系统微服务化后系统碎片化,系统的部署、运维、监控等更加复杂,因此需要将大部分工作自动化(主要通过Docker等工具中和微服务架构带来的弊端)
参考资料
https://www.iteye.com/news/32932
https://www.infoq.cn/article/micro-service-architecture-from-zero/
https://www.cnblogs.com/xishuai/p/microservices-and-service-mesh.html
https://xie.infoq.cn/article/6359d8375644b6440097b67a7
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库