对微服务的了解

微服务是一种架构风格,我们可以把应用程序划分为一组小型的、松散耦合的服务,
每个服务都运行在自己的进程中,并通过轻量级的通信机制进行通信,
每个服务都是独立部署、独立扩展、独立更新的,从而提高了应用程序的可伸缩性、可维护性和可测试性;
微服务架构本身就是一种分布式架构,它强调的是对部署在各个计算机上的应用服务的粒度;
它的核心思想是,针对拆分的服务节点做更进一步的解耦;拆分的好处是使得程序的扩展性更强,开发迭代效率更高;
微服务中服务调用流程:包括服务注册、发现、负载均衡、请求调用、容错处理、响应返回等步骤,依赖注册中心、网关、容错组件等。
好处:实现模块化、独立部署、技术异构、高可用、分布式协作,提升系统灵活性和可维护性。

以电商系统为例:

  • 用户下单时,订单服务通过 OpenFeign 调用库存服务检查库存。
  • 订单服务从 Nacos 获取库存服务的实例列表,使用 Ribbon 选择一个实例。
  • 请求通过 HTTP 发送到库存服务,库存服务扣减库存并返回结果。
  • 若库存服务超时,Hystrix 触发降级,返回默认提示"库存不足"。

服务熔断是一种保护机制,当某个微服务调用频繁失败或响应过慢时,触发熔断器打开,暂时阻止对该服务的后续请求,直接返回预设的错误响应 ;

作用:

防止故障扩散:避免因某个服务故障导致调用链上的其他服务也受到影响(雪崩效应)。

快速失败:当服务不可用时,直接返回默认响应,减少客户端等待时间。

自我恢复:熔断器会定期尝试少量请求(半开状态),若服务恢复则关闭熔断器,恢复正常调用。工作原理: 熔断器通常有三种状态:

关闭:正常状态,所有请求都尝试调用目标服务。

打开:如失败率过高,熔断器打开,拒绝所有请求,返回默认响应。

半开:经过一段时间,允许少量请求尝试调用,若成功则关闭熔断器,否则重新打开。

场景:调用支付服务时,连续多次超时,触发熔断器打开,后续请求直接返回"服务不可用"提示,防止进一步调用导致系统过载。

服务降级是指当系统资源紧张或服务不可用时,主动降低服务质量或功能,优先保证核心功能的正常运行,牺牲非核心功能以维持系统整体稳定性;

作用:保障核心功能,提升用户体验:通过返回简化数据或默认响应,避免用户看到错误页面;

系统稳定性:通过减少资源消耗,防止系统崩溃;

场景:在电商促销期间,商品详情页的推荐服务因流量过高不可用,系统降级为不显示推荐商品,仅展示商品基本信息。

nacos:提供分布式配置管理、服务注册与发现,适合动态配置和多环境管理。openFeign+Ribbon:简化服务调用并提供客户端负载均衡,适合微服务间通信。

网关:作为统一入口,通过断言匹配路由规则,通过过滤器处理请求。

Sentinel:阿里巴巴开源的流量控制和容错框架,用于微服务架构中的流量治理、熔断降级和系统保护。

核心功能:流量控制、熔断降级、热点限流、系统保护,支持动态规则配置和实时监控。

微服务中的作用:防止服务雪崩、应对流量高峰、提升系统稳定性,简化容错开发。

优势:轻量、灵活、易集成,适合复杂分布式系统。

相关推荐
潘多编程9 分钟前
云原生三剑客:Kubernetes + Docker + Spring Cloud 实战指南与深度整合
docker·云原生·kubernetes
你我约定有三24 分钟前
分布式微服务--Nacos作为配置中心(二)
java·分布式·spring cloud·微服务·架构·wpf·负载均衡
乖乖是干饭王1 小时前
FreeRTOS源码分析二:task启动(RISCV架构)
架构·c·riscv·rtos
阿里云云原生3 小时前
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
阿里云·微服务·云计算
俞凡4 小时前
[大厂实践] Netflix 分布式计数器抽象
架构
EnigmaGcl5 小时前
领域驱动设计,到底在讲什么?
后端·架构
元闰子5 小时前
分离还是统一,这是个问题
后端·面试·架构
文火冰糖的硅基工坊6 小时前
[硬件电路-124]:模拟电路 - 信号处理电路 - 测量系统的前端电路详解
前端·嵌入式硬件·fpga开发·架构·信号处理·电路
爷_6 小时前
手把手教程:用腾讯云新平台搞定专属开发环境,永久免费薅羊毛!
前端·后端·架构
Ashlee_code7 小时前
北极圈金融科技革命:奥斯陆证券交易所的绿色跃迁之路 ——从Visma千倍增长到碳信用衍生品,解码挪威资本市场的技术重构
科技·算法·金融·重构·架构·系统架构·区块链