【发版或上线项目保姆级心得】

news2025/2/27 19:56:01

第一步:先在正式环境创建数据库/新增表格或者字段

  • 在数据库表中增加字段/表格,不会报错。

  • 但是切记不要过早数据库字段/表格或者删除字段/表格

第二步:修改配置文件

  • 先将正式环境需要的配置给写好,包括但不仅限于数据库配置、基础服务配置和定时任务配置。
  • 如果是更新项目,需要修改原有配置,则不要过早修改。
  • 这一步必须仔细比对,需要哪些配置,并仔细检查域名

第三步:修改版本号和k8s上面的版本号

  1. 这一步至关重要,每次更新项目,都需要修改一下版本号,且在不同环境的版本号也应该有差别。否则k8s上的Pods出现问题,将无法回滚,造成严重后果(因为k8s采用滚动更新策略更新应用,一次更新一个Pod,而不是同时删除所有Pod,如果忘记修改版本号,并且及时发现,可以复制一份正确的Pod)。
  2. 预发布环境和开发环境需要作区分。修改的应该是自己服务的版本号,父pom的版本号不能修改,因为它目前一直是这个版本号,修改后完全找不到就报错了。
    pom.xml文件(在这里修改版本号)

第四步:正式发版步骤(前面都是准备阶段)

(1)package是打包代码为jar。 
(2)docker build才是制作镜像
(3)push是把打好的镜像文件推送的harbor镜像仓库中
(4)k8s每次重新部署服务会去harbor镜像仓库中拉去镜像,用来运行程序。
(5)k8s每次去拉的时候,都是拉的这个版本的镜像(如果把代码中的版本号改了,k8s想拉取新的镜像,**这个地方**的名字也要对应的改一下)。

k8s配置信息
(6) 如果项目中有定时任务,请求比较频繁,可以增加多个节点,分摊一下压力,可以减少出现线程阻塞的现象。

第四步:后期优化之设置日志输出级别

日志等级:

				①trace:最低等级
				②debug:调试用,通常用于跟踪程序进展。
				③info:记录用,通常用于记录程序行为。
				④warn:警告。
				⑤error:错误
				⑥fatal:灾难性错误、最高等级

设置日志等级:

	Springboot默认日志等级为info,只在控制台输出info或更高等级的日志。

修改日志等级(基础版)

			logging:
			level:
			root: info
			com.dxxw.dwn.controller: debug
			com.dxxw.dwn.service: debug

修改日志等级(分组版)

	日志的等级是根据组或包来设置的,其中root组即为整个项目
   以包为单位设置日志等级很麻烦,可以自己设置组别,然后为每组分别设置等级。
   
			logging:
			group:
			server: com.dxxw.dwn.controller, com.dxxw.dwn.service
			sql: com.dxxw.dwn.mapper
			level:
			root: info
			server: debug
			sql: trace

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秋招面试问题整理之机器学习篇

文章目录随机森林在决策树的哪些方面做出了改进随机森林里每棵树的权重不一定会变成什么模型方差和偏差,正则化解决的是方差大还是偏差大的问题正则化的方法总结了解VC维吗svd了解吗随机森林在决策树的哪些方面做出了改进 回答思路: 随机森林和决策树有…

同步syslog日志到服务端

目录结构前言Windows下安装syslog服务端(Syslog Watcher Manager)Linux下syslog服务端搭建java同步日志代码块日志同步测试前言 系统同步日志到syslog服务器,此文章记录以下内容: Windows下syslog服务端(Syslog Watc…

主食吃什么最健康?

又到了订饭的时候了,今天打算吃什么呢?面包?炒饭?面条?还是粥?上面说到的这些都是主食。大家都知道主食能带来很强的饱腹感,而且还是身体最重要、最经济的营养来源。但五谷杂粮,营养…

【项目】好用快搜文档搜索工具

文章目录一、项目分析1、项目调研2、项目需求3、开发环境4、项目知识框架5、项目实现基本理论二、项目设计整体框架设计代码框架设计三、项目实现1、系统工具模块目录遍历2、数据库管理模块2.1、封装数据库管理类(SqliteManager)2.2、封装数据管理类(DataManager)3、扫描模块4、…

紫外线生物素标记Biotin-PEG2-alkyne,UV Cleavable Biotin-PEG2-alkyne

UV Cleavable Biotin-PEG2-alkyne含有紫外线可切割碎片(containsa UV cleavable Fragemnt),试剂通过点击化学与含叠氮化物的分子反应。点击化学生物素标记试剂包含各种点击化学官能团修饰的生物素,适用于各种生物素标记实验。1.UV Cleavable Biotin-PEG2…

威马汽车:跃马扬鞭未竟,鞍马劳顿难行?

“活下去,像牲口一样地活下去。” 威马汽车创始人、董事长兼CEO沈晖1月在社交媒体上分享的电影台词,已然成为威马近况的真实写照。 来源:新浪微博威马汽车沈晖Freeman 最近,网上出现了大量关于“威马汽车将实施全员停薪留职”的…

【JavaScript速成之路】JavaScript数据类型转换

📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录前言数据类型转换1,转换为字符串型1.1,利用“”拼接转换成…

8、接口与面向接口编程

目录一、接口的基本概念二、类型断言三、面向接口编程一、接口的基本概念 接口的定义:接口是一组行为规范的集合 type Transporter interface { //定义接口,通常接口名以er结尾//接口里面只定义方法,不定义变量move(src string, dest strin…

10.现代循环神经网络

10.现代循环神经网络 目录 门控循环单元(GRU)门控隐状态 重置门和更新门候选隐状态 隐状态从零开始实现 初始化模型参数定义模型训练与预测 简洁实现总结 长短期记忆网络(LSTM) 门控记忆元 输入门、忘记门和输出门候选记忆元记忆…

基于xxx开发板的bluez的移植

基于xxx开发板的bluez的移植1.硬件电路2.软件准备2.1.源码配置2.2 编译源码3.请等待《题外话》:刚开始第一次接触bluez,完全没用过,也没搞过,开局一脸懵逼。刚好项目需要用到,只能硬着头皮上,淦淦淦&#x…

C语言之通讯录的实现

通讯录实现所需头文件和源文件 Contact.h的功能 声明函数和创建结构体变量 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #define MAX 1000 #define MAX_NAME 20 #define MAX…

npm 上传自己的包

mkdir demo 创建一个新的文件夹 npm init 初始化项目 生成一个package.json文件 name version description等等touch index.js 创建一个node 可执行脚本新的js 文件 #!/usr/bin/env node // 必须在文件头加如上内容指定运行环境为node console.log(hello cli)在package.json 中…

Zookeeper框架

Zookeeper框架概述 1.Zookeeper介绍 Zookeeper&#xff08;以下简称ZK&#xff09;是用来管理和协调其他框架的&#xff0c;很多框架需要依赖ZK&#xff08;例如Hadoop-HA&#xff0c;Kafka&#xff0c;HBase等&#xff09;ZK本身也是一个集群ZK本身也可以存数据(一般保存配置…

手撸一个Switch开关组件

一、前言 手撸系列又来了&#xff0c;这次咱们来撸一个Switch开关组件&#xff0c;废话不多说&#xff0c;咱们立刻发车。 二、使用效果 三、实现分析 首先我们先不想它的这个交互效果&#xff0c;我们就实现“不合格”时的一个静态页面&#xff0c;静态页面大致如下&#x…

GeoServer如何发布PostgreSQL里的数据?

GIS服务端避免不了将数据存储在pg库里。本篇我们来说如何将其发布在geoserver上。 我们讲的全面一点,尽量从0开始,让小白都能看得懂。 首先假设你有一份shape数据,你可以同过postgis插件导入到pg数据库中。 这里要注意:导入的shape文件和路径都不能含有中文! 导入之前…

嵌入式linux驱动学习-用cdev代替register_chrdev()

​上回说到字符设备驱动程序的注册与销毁register_chrdev()和unregister_chrdev()这是有缺陷的。 嵌入式lnux驱动学习-2.一个驱动程序的流程 现在用另外一个更好的方法代替&#xff0c;我们先来看看register_chrdev()实际上是调用了 __register_chrdev(major, 0, 256, name,…

【Mysql系列】Mysql之ACID实现原理

ACID 原子性 事务不可分割&#xff0c;要么全部执行&#xff0c;要么都不执行。原理是使用undo log。undo log&#xff0c;当事务对数据库进行修改的时候&#xff0c;会生成对应的undo log。 持久性 事务提交后&#xff0c;对于数据库的改变是永久性的。实现原理通过redo l…

leaflet 清除底图以外的所有图层(两种方法)

第084个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet项目中清除除了底图以外的其他图层,这里有两种方法,详情请参考源代码。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共140行)相关API专栏目标…

C++调用Python脚本进行18次循环操作后,脚本不执行

C调用Python脚本进行18次循环操作后&#xff0c;脚本不执行 现象&#xff1a; 发送端接收端 从第二张图中可以看出&#xff0c;python脚本卡在’[parkin_debug] 6’与’[parkin_debug] 7’之间 该测试经过多次反复测试&#xff0c;均在第18次循环执行时&#xff0c;出现上述问…

java TCP/UDP、Socket、URL网络编程详解

文章目录网络通信协议通信双方地址端口号IP地址InetAddress类Socket 网路编程Socket类的常用构造器Socket类的常用方法UDP协议什么是UDP协议UDP网络编程DatagramSocket 构造方法DatagramSocket 常用方法DatagramPacket常用方法实现步骤单向数据发收的UDP程序双向数据发收的UDP程…