当前位置: 首页 > 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 磁盘共享;

相关文章:

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)是面向对象编程中的一个设计原则&#xf…...

HTML5新增多媒体支持

一、引言 在当今数字化时代&#xff0c;丰富的多媒体内容对于网页的吸引力和用户体验至关重要。HTML5 的出现为网页带来了强大的多媒体支持&#xff0c;尤其是在音频和视频方面&#xff0c;为开发者和用户带来了全新的可能性。 二、音频audio标签 2.1 定义与属性详解 <a…...

K8S群集调度二

一、污点(Taint) 和 容忍(Tolerations) 1.1、污点(Taint) 设置在node上是对pod的一种作用 节点的亲和性&#xff0c;是Pod的一种属性&#xff08;偏好或硬性要求&#xff09;&#xff0c;它使Pod被吸引到一类特定的节点 而Taint 则相反&#xff0c;它使节点能够排斥一类特…...

43.第二阶段x86游戏实战2-提取游戏里面的lua

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要…...

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: “/…...

得物多模态大模型在重复商品识别上的应用和架构演进

重复商品治理介绍 根据得物的平台特性&#xff0c;同一个商品在平台上不能出现多个链接&#xff0c;原因是平台需要保证一品一链的特点&#xff0c;以保障商品的集中竞价&#xff0c;所以说一个商品在整个得物平台上只能有一个商详链接&#xff0c;因此我们需要对一品多链的情…...

基于 SSM(Spring + Spring MVC + MyBatis)框架构建电器网上订购系统

基于 SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架构建电器网上订购系统可以为用户提供一个方便快捷的购物平台。以下将详细介绍该系统的开发流程&#xff0c;包括需求分析、技术选型、数据库设计、项目结构搭建、主要功能实现以及前端页面设计。 需求分析 …...

应用插件化及其进程关系梳理

插件应用的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提供面向医药批发采、供、销业财一体化&#xff0c;及直接面向消费者的门店终端、全渠道管理、营销管理以及GSP合规管理解决方案&#xff0c;提升企业运营效率和全业务链条的数字化管控、追溯能力。 行业的最新…...

系统架构设计师论文:大数据Lambda架构

论文一:大数据Lambda架构 1简要说明你参与开发的软件项目,以及你所承担的主要工作 2 lamada体系架构将数据流分为批处理层(Batch Layer)、加速层(Speed Layer)、服务层(Serving Layer)。简要叙述这三个层次的用途和特点 3 详细阐述你参与开发的软件项目是如何基于lamada…...

亚信安全新一代WAF:抵御勒索攻击的坚固防线

近年来&#xff0c;勒索攻击已成为黑客的主要攻击手段。新型勒索攻击事件层出不穷&#xff0c;勒索攻击形势愈发严峻&#xff0c;已经对全球制造、金融、能源、医疗、政府组织等关键领域造成严重危害。如今&#xff0c;勒索攻击手段日趋成熟、攻击目标愈发明确&#xff0c;模式…...

Flutter 中的那些设计模式的写法(持续更新)

前言 我们都知道设计模式是相同的&#xff0c;同一种设计模式的理念不会因为语言不同而会有所改变&#xff0c;但是由于语法的差异&#xff0c;设计模式的写法也有所差异&#xff0c;本文会介绍一些flutter中常用设计模式的写法以及使用场景。 常见的设计模式有23种&#xff0…...

【提效工具开发】Python功能模块执行和 SQL 执行 需求整理

需求梳理 背景 当前我们在IDE或MySQL查询工具中只能进行个人使用&#xff0c;缺乏共享功能&#xff0c;且在查询及数据统计上有一定的不便。为了改善这种情况&#xff0c;计划搭建一个Web平台&#xff0c;通过后台交互来提升效率。此平台需要兼容Python工具和SQL工具的管理、执…...

Linux系列-进程的状态

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 操作系统就是计算机领域的哲学&#xff0c;是为了保证在所有情况下都适用&#xff0c;加载到内存叫做新建状态。 并行和并发 计算机同时进行多个任务&#xff0c;在用户感知的…...

SpringBoot项目中常用的一些注解

一、核心注解 SpringBootApplication 作用&#xff1a;标注一个主程序类&#xff0c;表明这是一个Spring Boot应用程序的入口。说明&#xff1a;这是一个复合注解&#xff0c;组合了Configuration、EnableAutoConfiguration和ComponentScan。 EnableAutoConfiguration 作用&…...

【网络】自定义协议——序列化和反序列化

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是序列化和分序列&#xff0c;并且自己能手撕网络版的计算器。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不…...

Pytorch如何精准记录函数运行时间

0. 引言 参考Pytorch官方文档对CUDA的描述&#xff0c;GPU的运算是异步执行的。一般来说&#xff0c;异步计算的效果对于调用者来说是不可见的&#xff0c;因为 每个设备按照排队的顺序执行操作Pytorch对于CPU和GPU的同步&#xff0c;GPU间的同步是自动执行的&#xff0c;不需…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

HTTPS证书一年多少钱?

HTTPS证书作为保障网站数据传输安全的重要工具&#xff0c;成为众多网站运营者的必备选择。然而&#xff0c;面对市场上种类繁多的HTTPS证书&#xff0c;其一年费用究竟是多少&#xff0c;又受哪些因素影响呢&#xff1f; 首先&#xff0c;HTTPS证书通常在PinTrust这样的专业平…...