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 磁盘共享;
相关文章:
springboot 传统应用程序,适配云原生改造
概述 2024年传统应用程序上云,改造方案 1、mysql 云环境高可用方案 2、redis 云环境高可用方案 3、nginx 云环境高可用方案 4、应用 云环境高可用方案1、mysql 云环境高可用方案 1.1 你先了解 1.1.1 你先了解“mysql高可用方案” 主从复制(Master-S…...
D61【python 接口自动化学习】- python基础之数据库
day61 数据库定义 学习日期:20241107 学习目标:MySQL数据库-- 130:MySQL入门使用 学习笔记: 在命令提示符内先试用MySQL 使用图形化工具操作MySQL DBeaver安装 DBeaver连接MySQL 总结 MySQL安装成功后,可以使用命…...
数据库期末考试简答题
1.试述数据、数据库、数据库管理系统、数据库系统的概念。 答:(1)数据是数据库中存储的基本对象,是描述事物的符号记录。数据有多种表现形式,它们都可以经过数字化后存入计算机。数据的种类有数字、文字、…...
Java[面试题]-真实面试
1.什么是IOC和AOP?了解么? IOC(控制反转)和AOP(面向切面编程) 1. IOC(控制反转) 概念 IOC(Inversion of Control)是面向对象编程中的一个设计原则…...
HTML5新增多媒体支持
一、引言 在当今数字化时代,丰富的多媒体内容对于网页的吸引力和用户体验至关重要。HTML5 的出现为网页带来了强大的多媒体支持,尤其是在音频和视频方面,为开发者和用户带来了全新的可能性。 二、音频audio标签 2.1 定义与属性详解 <a…...
K8S群集调度二
一、污点(Taint) 和 容忍(Tolerations) 1.1、污点(Taint) 设置在node上是对pod的一种作用 节点的亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点 而Taint 则相反,它使节点能够排斥一类特…...
43.第二阶段x86游戏实战2-提取游戏里面的lua
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…...
debian系统安装qt的时候 显示xcb相关文件缺失
如果是安装之后的问题 我们可以选择使用ldd的命令查看当前依赖的so那些文件确实 ldd /home/yinsir/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so 本人在进行打包的时候 出现则会个报错 ERROR: ldd outputLine: “libxcb-util.so.1 > not found” ERROR: for binary: “/…...
得物多模态大模型在重复商品识别上的应用和架构演进
重复商品治理介绍 根据得物的平台特性,同一个商品在平台上不能出现多个链接,原因是平台需要保证一品一链的特点,以保障商品的集中竞价,所以说一个商品在整个得物平台上只能有一个商详链接,因此我们需要对一品多链的情…...
基于 SSM(Spring + Spring MVC + MyBatis)框架构建电器网上订购系统
基于 SSM(Spring Spring MVC MyBatis)框架构建电器网上订购系统可以为用户提供一个方便快捷的购物平台。以下将详细介绍该系统的开发流程,包括需求分析、技术选型、数据库设计、项目结构搭建、主要功能实现以及前端页面设计。 需求分析 …...
应用插件化及其进程关系梳理
插件应用的AndroidManifest.xml <manifest xmlns:android"http://schemas.android.com/apk/res/android"coreApp"true"package"com.demo.phone"android:sharedUserId"android.uid.phone"><uses-sdk android:minSdkVersion&q…...
Odoo:免费开源的医药流通行业信息化解决方案
文 / 开源智造Odoo亚太金牌服务 方案概述 开源智造Odoo免费开源ERP提供面向医药批发采、供、销业财一体化,及直接面向消费者的门店终端、全渠道管理、营销管理以及GSP合规管理解决方案,提升企业运营效率和全业务链条的数字化管控、追溯能力。 行业的最新…...
系统架构设计师论文:大数据Lambda架构
论文一:大数据Lambda架构 1简要说明你参与开发的软件项目,以及你所承担的主要工作 2 lamada体系架构将数据流分为批处理层(Batch Layer)、加速层(Speed Layer)、服务层(Serving Layer)。简要叙述这三个层次的用途和特点 3 详细阐述你参与开发的软件项目是如何基于lamada…...
亚信安全新一代WAF:抵御勒索攻击的坚固防线
近年来,勒索攻击已成为黑客的主要攻击手段。新型勒索攻击事件层出不穷,勒索攻击形势愈发严峻,已经对全球制造、金融、能源、医疗、政府组织等关键领域造成严重危害。如今,勒索攻击手段日趋成熟、攻击目标愈发明确,模式…...
Flutter 中的那些设计模式的写法(持续更新)
前言 我们都知道设计模式是相同的,同一种设计模式的理念不会因为语言不同而会有所改变,但是由于语法的差异,设计模式的写法也有所差异,本文会介绍一些flutter中常用设计模式的写法以及使用场景。 常见的设计模式有23种࿰…...
【提效工具开发】Python功能模块执行和 SQL 执行 需求整理
需求梳理 背景 当前我们在IDE或MySQL查询工具中只能进行个人使用,缺乏共享功能,且在查询及数据统计上有一定的不便。为了改善这种情况,计划搭建一个Web平台,通过后台交互来提升效率。此平台需要兼容Python工具和SQL工具的管理、执…...
Linux系列-进程的状态
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 操作系统就是计算机领域的哲学,是为了保证在所有情况下都适用,加载到内存叫做新建状态。 并行和并发 计算机同时进行多个任务,在用户感知的…...
SpringBoot项目中常用的一些注解
一、核心注解 SpringBootApplication 作用:标注一个主程序类,表明这是一个Spring Boot应用程序的入口。说明:这是一个复合注解,组合了Configuration、EnableAutoConfiguration和ComponentScan。 EnableAutoConfiguration 作用&…...
【网络】自定义协议——序列化和反序列化
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是序列化和分序列,并且自己能手撕网络版的计算器。 > 毒鸡汤:有些事情,总是不明白,所以我不…...
Pytorch如何精准记录函数运行时间
0. 引言 参考Pytorch官方文档对CUDA的描述,GPU的运算是异步执行的。一般来说,异步计算的效果对于调用者来说是不可见的,因为 每个设备按照排队的顺序执行操作Pytorch对于CPU和GPU的同步,GPU间的同步是自动执行的,不需…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
