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间的同步是自动执行的,不需…...
FakeLocation:无需Root的Android虚拟定位终极解决方案
FakeLocation:无需Root的Android虚拟定位终极解决方案 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否曾经因为地理位置限制而无法参与心爱的游戏活动ÿ…...
边缘金融大语言模型的高效部署与实时推理优化
1. 边缘金融大语言模型的技术背景与挑战金融行业每天产生海量非结构化数据,包括客户咨询记录、财报文本、新闻舆情等。传统NLP模型在处理这类数据时面临两个核心痛点:一是无法理解金融专业术语背后的复杂语义(如"可转债"在不同上下…...
今天开始学爬虫1
1.1:import urllib错误 module urllib has no attribute request应该import urllib.requestimport urllib.requesturlhttp://www.baidu.com/ responseurllib.request.urlopen(url) contentresponse.read().decode(utf-8) print(content)2.1#返回字节 contentrespons…...
ABAP 采购带组件收货BAPI
一、背景 有一项业务比较特殊,金靶的回收加工,既会有物料的消耗,也会收进上一批加工洗出来的物料,并且组件物料会带有批次,MIGO过账时需要填写批次,那么对应BAPI,也需要加入这一部分批次。如果…...
Ubuntu 下 P106-100 矿卡 `nvidia-smi No devices were found` 问题解决全过程
Ubuntu 下 P106-100 矿卡 nvidia-smi No devices were found 问题解决全过程 最近折腾一张老矿卡 P106-100,在 Ubuntu 下遇到一个非常经典的问题: nvidia-smi No devices were found但是: lspci | grep -i nvidia却能看到显卡: 01:00.0 3D controller: NVIDIA Corporat…...
别再点那个小箭头了!手把手教你用自定义按钮控制ElementUI表格展开行(Vue3 + Element Plus版)
用文字按钮重构Element Plus表格交互:让展开行操作更符合用户直觉 后台管理系统中最常见的交互痛点之一,就是默认的表格展开箭头设计。当用户面对密密麻麻的数据表格时,那个小小的三角形图标往往成为操作盲区。我曾参与过一个电商后台系统的用…...
完整 Ubuntu 服务器 XFCE 桌面 + XRDP 远程桌面 部署使用全流程
一、系统初始化 & 基础依赖安装bash# 更新系统sudo apt update && sudo apt upgrade -y# 安装必备依赖sudo apt install wget curl libfuse2 libxcb-xinput0 libxkbfile1 libssl-dev lrzsz -y二、安装 XFCE 轻量图形桌面bash# 完整安装XFCE桌面环境sudo apt instal…...
为什么你的离心风扇仿真总不准?建模方法与调速策略深度拆解
🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 211、985硕士,从业16年 从事结构设计、热设计、售前、产品设计、项目管理等工作,涉足消费电子、新能源、医疗设备、制药信息化、核工业等…...
从一次数据解析Bug说起:彻底搞懂QString的toLocal8Bit、toUtf8和toLatin1该用哪个
从一次数据解析Bug说起:彻底搞懂QString的编码转换选择 上周排查一个网络协议解析问题时,遇到一个典型的编码陷阱:服务端返回的GBK编码数据包,在Qt客户端用toUtf8()解析后出现乱码。这个看似简单的编码问题背后,隐藏着…...
告别手动评分!用ImageJ的IHC Profiler插件,5分钟搞定免疫组化定量分析(附避坑指南)
告别手动评分!用ImageJ的IHC Profiler插件,5分钟搞定免疫组化定量分析(附避坑指南) 免疫组化(IHC)作为病理诊断和生物医学研究中的金标准技术,其结果的量化分析一直是困扰研究人员的难题。传统人…...
