微服务概述之微服务架构

前言

为了解决单体应用的缺点,工程师们想到将原来大的单体应用进行拆分,化整为零形成独立的应用,不过此时这些应用没有直观的入口,因此用传统应用的概念来定义就不太妥当。于是诞生了"服务",通过服务来描述这种功能性的应用,并其他应用提供功能支持,服务于其他应用。现在"服务"这个词已经广义化了,只要是能向其他组件提供技术支撑的系统都叫服务,甚至出现了很多概念,如SaaS(软件即服务)、PaaS(平台即服务)、IaaS(基础架构即服务)。

什么是服务

服务其实就是将其他应用当成消费者,为其提供特定的功能。例如,将用户登录抽象成一个服务,可以叫作用户服务,让其他服务来调用。以此类推,可以有订单服务、支付服务、消息服务、商品服务、客服服务、营销服务、积分服务等。总之,就是抽取公共部分以避免重复工作。这样一来,后续应用的开发,也就变成了服务的开发。

什么是微服务

理解了服务是怎么回事,接着我们来学习微服务。

微服务概念最早是 Martin Fowler(马丁•福勒)于2014年提出的。他指出了微服务架构是用于描述将软件应用设计成独立部署服务的一种方式,但是并没有给出精确的定义,只是提出了一些确定、通用的特征,如围绕组织和业务能力、自动化部署、节点智能、对语言和数据的分散控制等。

从技术的角度理解,微服务就是将传统的一站式应用,根据不同的业务拆分成一个小的服务,每个服务提供独立的业务功能,拥有自己独立的存储(数据库或者缓存),通过服务之间的互相调用来完成复杂的系统功能。

总结

服务是指将其他应用抽象为功能性的组件,为其他应用提供特定功能支持的系统。微服务则是一种将软件应用设计成独立部署服务的架构方式。在微服务架构下,传统的一站式应用根据业务进行拆分,形成小的独立服务,每个服务都提供独立的业务功能和存储,并通过互相调用来完成复杂的系统功能。

相关推荐
cyber_两只龙宝3 小时前
LVS-DR模式实验配置及原理详解
linux·网络·云原生·智能路由器·lvs·dr模式
Elias不吃糖15 小时前
java开发的三层架构
java·开发语言·架构
AI周红伟16 小时前
周红伟:Sora2模型背后的技术原理与技术架构创新,和Sora2应用代码实操
架构
陌上丨18 小时前
MySQL8.0高可用集群架构实战
数据库·mysql·架构
muddjsv18 小时前
深入浅出 B/S 架构:从原理到实践,解锁 Web 应用开发核心
架构
水上冰石19 小时前
Kubernetes Ingress + TLS 故障排查全流程
云原生·容器·kubernetes
岁岁种桃花儿19 小时前
K8s核心流量管理:Ingress与Service深度解析及实战对比
云原生·容器·kubernetes
晚霞的不甘19 小时前
Flutter for OpenHarmony 进阶实战:打造 60FPS 流畅的物理切水果游戏
javascript·flutter·游戏·云原生·正则表达式
市安19 小时前
docker命令知识点1
运维·docker·云原生·容器·eureka
小庄20 小时前
如何正确的 DDD
微服务·ddd·洋葱架构