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

java分布式服务的高可用处理

高可用的核心就是冗余,某一个服务器或者数据库、缓存不可用使用的时候,也不会影响用户的使用体验。

1 服务器:分布式服务部署

2 缓存:

多级缓存策略:

前端:页面缓存

后端:本地缓存。redis缓存(分布式缓存结构)。数据库。

3 数据库:读写分离,分库分表。

读写分离:读库、写库,数据还要同步。

mysql读写分离数据同步机制:可以通过Canal实现主从同步机制。

+------------+    +------------+    +------------+
| MySQL      |    | Canal      |    | Client     |
| Master     |    | Server     |    | Application|
+-----+------+    +-----+------+    +-----+------+
      |                |                 |
      | 1. 模拟Slave   |                 |
      |<---------------|                 |
      |                |                 |
      | 2. 推送binlog  |                 |
      |--------------->|                 |
      |                | 3. 解析转换      |
      |                |--------+        |
      |                |        |        |
      |                | 4. 消息队列      |
      |                |------->|        |
      |                |        | 5. 消费 |
      |                |        |-------->|

水平分表(常用):根据hash算法 % id(唯一键值都可以),生成多张相同的表存储数据。

垂直分表:将一个表的字段分到不同的表中,降低单表压力。

4 限流、熔断、服务降级:保证服务器的对外服务。

限流:某些接口根据压测指标来设置限流qps。

熔断:某个服务某个rpc接口失败重拾达到一定测试进行熔断,服务标记为不可用。

服务降级:对非核心接口提供降级,如接口返回失败请重试,提示当前接口不可用。

也就是关闭某些服务,或者返回预定设置的值。

http://www.xdnf.cn/news/473455.html

相关文章:

  • 优化算法加速深度学习模型训练
  • 《棒球百科》市运会是什么级别的比赛·棒球1号位
  • 一种改进DEIM(CVPR2025)的简单示例
  • 前端学习:align-items 和 justify-content 概念和区别
  • 图片通过滑块小图切换大图放大镜效果显示
  • SDC命令详解:使用get_pins命令进行查询
  • Vue.js---避免无限递归循环 调度执行
  • Weblogic SSRF漏洞复现(CVE-2014-4210)【vulhub靶场】
  • 黑马Java基础笔记-11
  • 深度学习之用CelebA_Spoof数据集搭建一个活体检测-训练好的模型用MNN来推理
  • Turbo C++
  • 数据驱动下的具身智能进化范式
  • 专项智能练习(定义判断)
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.4.4)
  • threejs 大场景优化方案(代码层)
  • pycharm中qthread中的run函数debug不上的问题
  • 深度学习中的提示词优化:梯度下降全解析
  • 钉钉数据与金蝶云星空的无缝集成解决方案
  • mavgenerate 在 win11 下环境搭建注意问题
  • Kuberbetes-CA证书过期解决方案
  • linux系统中如何校准时间
  • windows、Ubuntu、Debian 添加静态路由
  • 从零开始学习PX4源码22(位置控制器---加速度部分理解)
  • MyBatis XML配置和入门使用
  • 论在中断中的标志变量使用volatile的重要性分析
  • 基于EtherCAT与ABP vNext 构建高可用、高性能的工业自动化平台
  • 双重差分模型学习笔记4(理论)
  • ip命令详解
  • HPC软件使用之ANSYS Fluent
  • Git-学习笔记(粗略版)