对微服务的了解

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

以电商系统为例:

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

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

作用:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
草莓熊Lotso23 分钟前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
腾飞开源25 分钟前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
非优秀程序员11 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
知已难寻12 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
Dawson Zhu15 小时前
【LLM推理与Serving⑪】MoE推理与MLA:DeepSeek-V3架构下的显存与通信权衡
人工智能·语言模型·架构·aigc·agi
阿里云云原生17 小时前
生产更可信,订阅更耐用丨Higress 社区进展报告
云原生
阿里云云原生18 小时前
如何用 STAROps Elasticsearch 智能助手看穿“搜索变慢”
云原生
IT规划师20 小时前
NET10 高并发架构契约与落地实现
架构·.net
浪遏20 小时前
08|允许 AI 写文档之后,授权和审核怎样才算数
架构
浪遏20 小时前
05|网页、分享页与 CLI,为什么必须走同一条保存路径
架构