当前位置: 首页 > news >正文

微服务如何实现服务的高可用

背景:微服务分层需要考虑高可用高并发的问题

微服务如何实现服务的高可用

先说结论:微服务实现高可用主要通过集群冗余+故障自动转移来实现的具体可以从底下几种方案来实现。

  • “端”到“反向代理”的高可用
  • “反向代理”到“站点应用”的高可用
  • “站点应用”到“微服务”的高可用
  • “微服务”到“缓存”的高可用
  • “微服务”到“读库”的高可用
  • “微服务”到“写库”的高可用
常见的互联网分层架构

首先先了解下常见的分层架构入下图所示

“客户端”到“反向代理”的高可用

可以通过Keepalived+VIP实现虚拟IP漂移,主节点故障时秒级切换

“反向代理”到“站点应用”的高可用

Nginx反向代理是实现站点应用高可用的关键技术手段,它通过负载均衡、请求分发和故障转移等机制,确保应用服务的持续可用性

“站点应用”到“微服务”的高可用

主要通过连接池技术来实现的:连接池技术是站点应用访问微服务集群时实现高可用的关键技术手段:资源复用机制‌、故障隔离能力‌、负载均衡功能‌;除了连接池技术还可通过熔断限流来实现高可用

“微服务”到“缓存”的高可用

微服务到缓存的高可用实现方案通过分层缓存架构(本地缓存→分布式缓存→持久化存储)和智能数据一致性策略(双写/失效模式+异步补偿)保障系统可靠性,采用Redis Cluster实现自动分片和主从切换(切换时间<2秒),配合Redisson分布式锁防止缓存击穿。多级容错设计包含同城双活部署、Sentinel监控和熔断降级机制,数据持久化提供RDB/AOF混合方案选择。通过缓存预热、LRU/LFU淘汰策略优化性能。一句话总结:通过多级缓存+集群部署确保高可用

“微服务”到“写库”的高可用

“微服务”到“写库”的高可用如果对数据库进行读写分离,必须保证写库高可用:

采用双主或主从+keepalived实现自动故障转移

“微服务”到“读库”的高可用

微服务读库高可用通过读写分离+自动故障转移实现,主从延迟超阈值时自动切换读节点,配合健康检查剔除异常实例,结合Redis缓存和熔断重试机制,保障读可用性

http://www.dtcms.com/a/190273.html

相关文章:

  • C++GO语言微服务之Dockerfile docker-compose②
  • 若依框架页面
  • TCP/IP-——C++编程详解
  • SAP修改多元化政策
  • C语言:51单片机实现数码管依次循环显示【1~F】课堂练习
  • C#中的dynamic与var:看似相似却迥然不同
  • element合并单元格合并表头合并列,指定合并某一列
  • 小结:Android系统架构
  • 常见相机焦段的分类及其应用
  • 【RT-Thread】 组件机制
  • 在 Angular 中, `if...else if...else`
  • 游戏盾SDK的防护介绍
  • 虚幻引擎5-Unreal Engine笔记之摄像机与场景捕获相关概念的解析
  • 主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少?
  • 阿里云Docker镜像加速配置指南
  • 相关行业发展趋势写一个爬虫程序
  • MQ消息队列的深入研究
  • 数据库系统概论|第六章:关系数据理论—课程笔记2
  • 在Unity中制作拥有36年历史的游戏系列新作《桃太郎电铁世界》
  • 华硕服务器-品类介绍
  • Baklib全场景知识中台驱动效能跃升
  • spark分区器
  • 探索AI新领域:生成式人工智能认证(GAI认证)助力职场发展
  • 常用的应用层网络协议对比
  • SAP学习笔记 - 开发11 - RAP(RESTful Application Programming)简介
  • 鸿蒙Next API17新特性学习之如何使用新增鼠标轴事件
  • Hadoop-HDFS-Packet含义及作用
  • HarmonyOS NEXT 适配高德地图FlutterSDK实现地图展示,添加覆盖物和移动Camera
  • 【​​HTTPS基础概念与原理​】​​SSL/TLS协议演进史:从SSLv3到TLS 1.3
  • 基于Spring AI与Hugging Face TGI构建高效聊天应用:从配置到实践全解析