什么是微服务,为什么要做微服务?

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 什么是微服务,为什么要做微服务?

Spring Boot 微服务


单体应用VS微服务应用


  • 单体应用


image.png


  • 微服务应用


image.png


单体架构演进


项目拆分多项目独立部署



image.png


ESB企业服务总线


image.png


区别


  • SOA架构主要针对企业级、采用ESB服务(ESB企业服务总线),非常重,需要序列化和反序列化,采用XML格式传输


  • 微服务架构主要是用于互联网,轻量级、小巧,独立运行,基于 HTTP + Rest + JSON 格式传输。


  • ESB也可以说是传统中间件与 XML、Web 服务等技术互相结合的产物


单体架构的缺点


  • 复杂性逐渐变高


  • 技术债逐渐上升


  • 部署速度逐渐变慢


  • 阻碍技术创新


  • 无法按需伸缩


微服务架构


微服务的定义


  • Martin Fowler: 简而言之,微服务架构风格这种开发方法,是以一组小型服务的方式来开发一个独立的应用系统。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量级的机制来互相通讯。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。这些微服务我们仅做最低限度的集中管理。


  • 微服务架构师一种架构模式,它提倡将单一应用程序划分成小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级通讯机制互相沟通(通常是基于HTTPS的RESTful API)。每个服务,都围绕着具体业务进行构建。并且能够独立地部署到生产环境、类生产环境等。另外,尽量避免统一的、集中式的服务管理机制,堆具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建


  • 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个服务可被独立部署,各个服务之间是松耦合的。每个微服务仅关注完成一件任务并能很好地完成任务。在所有情况下,每个任务代表着一个小的业务能力。


微服务特点


  • 服务组件化


  • 服务围绕业务


  • 产品开发模式


  • 轻量级通讯机制


  • 去中心化治理


  • 去中心化数据设计


  • 故障处理设计


  • 演进式设计


  • 基础设置自动化


微服务的优点和挑战


  • 优点


  • 开发简单
  • 技术栈灵活
  • 服务端丽
  • 按需拓展


  • 挑战


  • 运维复杂
  • 数据一致性问题
  • 集成测试复杂
  • 重复代码
  • 监控困难


微服务具备的特征


  • 每个微服务可以独立运行在自己的进程中


  • 一些列独立运行的微服务共同构建起了整个系统


  • 每个服务独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等


  • 微服务之间通过一些轻量级的通讯机制进行通讯,例如:通过 Rest API或者RPC的方式进行通讯


微服务的优点


  • 易于开发和维护


  • 启动较快


  • 局部修改容易部署


  • 技术栈不受限制


  • 按需伸缩


  • DevOps


微服务带来的挑战


  • 运维成本较高


  • 分布式的复杂性


  • 接口调整成本高


  • 重复劳动


微服务的设计原则


  • 单一职责原则


  • 服务自治原则


  • 轻量级通信原则


  • 接口明确原则


参考资料



相关文章
|
2月前
|
消息中间件 Dubbo Java
微服务
【10月更文挑战第1天】微服务是一种将大型应用分解为小型、独立服务的设计理念,每个服务负责单一业务功能,独立部署、运行,通过轻量级通信机制(如HTTP API或RPC)互联。相比单体应用,微服务提高了部署效率、团队协作效能和系统可用性,但也增加了系统复杂性、通信开销和数据一致性管理的难度。实现微服务架构涉及服务拆分、服务发现、配置管理、服务治理、数据一致性、安全性、监控与日志、持续集成与部署等多个方面。
38 4
|
3月前
|
负载均衡 数据库 Docker
微服务(一)-微服务介绍
微服务(一)-微服务介绍
|
6月前
|
Java API 调度
微服务介绍
微服务介绍
32 0
|
7月前
|
Java 数据管理 API
详解微服务
详解微服务
|
运维 负载均衡 网络协议
微服务详解
微服务详解
105 0
|
缓存 监控 应用服务中间件
你了解微服务吗?什么是微服务
现在很多公司,例如 Amazon、阿里 和Netflix,已经通过采用称为微服务架构模式的方式解决单体地狱问题。与其构建一个庞大的单体应用程序,不如将您的应用程序拆分为一组更小的、相互连接的服务。
171 0
你了解微服务吗?什么是微服务
|
存储 JSON 编解码
关于微服务,这些你都了解吗-微服务介绍
关于微服务,这些你都了解吗-微服务介绍
215 0
|
自然语言处理 搜索推荐 微服务
了解微服务
微服务是与之前的服务化思路和实践相比较而来的。早些年的服务实现和实施思路是将很多功能从开发到交付都打包成一个很大的服务单元(一般称为Monolith),而微服务实现和实施思路则更强调功能趋向单一,服务单元小型化和微型化。
137 0
了解微服务
|
缓存 运维 监控
浅谈微服务
微服务兴起已经多年了,这几年已到大发展阶段。公司内部做了很多和微服务相关的事情,自己也看了一些微服务相关的内容。现在再来认识”微服务“三个字,终于有点懂了的感觉。
|
XML 网络协议 Dubbo
【微服务系列】微服务总结(一)
最常见的服务发布和引用的方式有三种: RESTful API XML 配置 IDL 文件 1,RESTful API RESTful API 的方式,主要被用作 HTTP 或者 HTTPS 协议的接口定义,即使 在非微服务架构体系下,也被广泛采用 讲到RESTful API ,先去了解一下什么是RESTful 架构 1.1 RESTful架构 到底什么是REST...
179 0
【微服务系列】微服务总结(一)
下一篇
无影云桌面