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

springboot 传统应用程序,适配云原生改造

概述

2024年传统应用程序上云,改造方案

1、mysql 云环境高可用方案
2、redis 云环境高可用方案
3、nginx 云环境高可用方案
4、应用 云环境高可用方案

1、mysql 云环境高可用方案

1.1 你先了解

1.1.1 你先了解“mysql高可用方案”

主从复制(Master-Slave Replication)、主主复制(Master-Master Replication)、MySQL Group Replication、MySQL Cluster:、Galera Cluster: 、ProxySQL 或 HAProxy:

1.1.2 了解K8S基础知识

1、k8s pv 、pvc ; 2、了解:k8s statefulSets,3、了解 k8s service

1.2 实施方案相对较低

MySQL group replication +k8s service+springboot
人工干预较少,需专门运维,发生问题;发送通知,重启异常数据库;

需要改造程序吗:不需要,数据库负载靠 k8s service,程序连接 k8s service
MySQL group replication 配复杂吗:不复杂,mysql8自带的一个插件,仅需启用插件和修改mysql配置文件;

传统的方案
主主复制+keepavlie,该方案也可上云,宕机需人工干预;

1.3 MySQL group replication 写性能比物理机低需要注意啥

加点配置,网络带宽至少1Gib,带宽可能对环境影响较大;

1.4 mysql 云环境的定时备份velero

至于备份周期,自行了解,需根据场景判断;

1.5 传统物理环境安全保证 RAID

也少不了,磁盘磁盘RAID,我是保守派:数据库做 RAID 1 + 定期巡检 才放心;

2、redis 云环境高可用方案

2.1 解决方案

方案很成熟,官方解决方案,redis 哨兵、集群都可;
redis 哨兵:最低可3个节点:哨兵和redis部署在1个节点,可死掉1个节点,不影响高可用;
redis集群:最低 6个节点,可死掉2个节点,不影响高可用;
也少不了监控,宕机找人启动;云环境redis使用原则:存储允许丢失的数据;

2.2 程序改造

换 lettuce,lettuce redis 支持哨兵、集群和单机的配置 ,3者仅springboot配置文件不一样;

3、nginx 云环境高可用方案

3.1 方案一

ConfigMap 部署 NGINX , ConfigMap 更新时自动重载 NGINX,可以使用 config-reloader
k8s Service 以实现负载均衡

方案二(标准方案):

除了上述:添加 Helm Chart 管理部署; Helm Chart 中配置 livenessProbe 和 readinessProbe,确保 Kubernetes 能够监控 Pods 的健康状况,并在需要时进行自愈

前端vue:无需改动,推荐使用NFS 共享盘,所有nginx节点公用1个挂载点,并启动nginx缓存;

4、应用 云环境高可用方案

应用无主:jwt+token
数据库高可用,已列:
文件无主:目前多采用可观测的文件服务器minio:传统的文件无主方案:k8s Nfs 磁盘共享;

http://www.lryc.cn/news/479304.html

相关文章:

  • D61【python 接口自动化学习】- python基础之数据库
  • 数据库期末考试简答题
  • Java[面试题]-真实面试
  • HTML5新增多媒体支持
  • K8S群集调度二
  • 43.第二阶段x86游戏实战2-提取游戏里面的lua
  • debian系统安装qt的时候 显示xcb相关文件缺失
  • 得物多模态大模型在重复商品识别上的应用和架构演进
  • 基于 SSM(Spring + Spring MVC + MyBatis)框架构建电器网上订购系统
  • 应用插件化及其进程关系梳理
  • Odoo:免费开源的医药流通行业信息化解决方案
  • 系统架构设计师论文:大数据Lambda架构
  • 亚信安全新一代WAF:抵御勒索攻击的坚固防线
  • Flutter 中的那些设计模式的写法(持续更新)
  • 【提效工具开发】Python功能模块执行和 SQL 执行 需求整理
  • Linux系列-进程的状态
  • SpringBoot项目中常用的一些注解
  • 【网络】自定义协议——序列化和反序列化
  • Pytorch如何精准记录函数运行时间
  • 使用 Java 实现邮件发送功能
  • html第一个网页
  • 前后端交互接口(三)
  • 华为Mate70前瞻,鸿蒙NEXT正式版蓄势待发,国产系统迎来关键一战
  • 【安卓13 源码】Input子系统(4)- InputReader 数据处理
  • Xserver v1.4.2发布,支持自动重载 nginx 配置
  • Java反射原理及其性能优化
  • RabbitMQ 管理平台(控制中心)的介绍
  • 【SQL】在 SQL Server 中创建数据源是 MySQL 数据表的视图
  • 现代Web开发:Next.js 深度解析与最佳实践
  • LeetCode题练习与总结:赎金信--383