一些日常问题的简单总结

news2024/9/23 5:17:29

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • maven
    • 生命周期
    • 二方包
    • maven的配置
  • Java内存管理
    • jvm内存调优
    • GC流程
      • G1垃圾回收器
  • CPU负载及使用率
  • docker
    • 二进制安装及配置
    • nexus
    • nginx做反向代理
  • k8s
    • pod生命周期
    • 探针
    • linux中fork和exec的区别
    • python的安装步骤
    • 使用dockerfile构建镜像,并作为yaml文件中的镜像源
    • 资源限制及优先级
    • iptables四表五链
  • jenkins
    • 安装
    • pipeline
    • 结合gitlab
    • 自动构建大致流程



提示:以下是本篇文章正文内容,下面案例可供参考

在这里插入图片描述

maven

生命周期

Maven生命周期就是为了对所有构建过程进行抽象和统一;包括项目清理、初始化、编译、打包、测试、部署等几乎所有构建步骤;生命周期可以理解为构建工程的步骤。

Maven中有三套相互独立的生命周期:

Clean Lifecycle:构建前的清理工作 Mvn clean

Default(build) Lifecycle:构建的核心部分:编译、测试、打包、部署等 Mvn compile test package install deploy

Site Lifecycle:生成项目报告、站点、发布站点
典型的Maven生命周期:

validate验证 compile编译 test测试 package打包 verify检查 install安装 deploy部署

**正是生命周期阶段和插件的互相绑定,才能真正完成项目的构建**

二方包

简单理解就是公司内部其他项目发布的jar包,我们可以去调用

maven的配置

基本上就是对配置文件中的本地仓库、镜像源、jdk版本进行修改,再去idea中将默认的Maven改为我们自己配置的Maven

Java内存管理

JVM内存分为堆、栈、方法区;分别用于存储不同的数据

JVM堆内存将内存分为新生代、老年代、元空间(存储一些方法中的临时对象)
建立一个对象时从两个地方都分配了内存,在堆中分配的内存实际上建立了这个对象,而在栈中分配的内存只是一个指向这个堆对象的指针(引用)而已。

jvm内存调优

主要是为了减少GC频率和FULL GC次数

GC流程

基本所有数据都会保存在JVM堆内存中,最需要处理的是年轻代和老年代的GC,元空间都不在GC范围内
新对象产生,JVM要为该对象进行内存空间申请,先判断eden区有没有空间,没有进行新生代GC,再判断,还是不够则判断存活区,以此类推,最坏的情况就是full GC之后还是没有空间,则会产生内存溢出

G1垃圾回收器

一种暂停时间在可接受范围内的高吞吐量GC(-XX:+UseG1GC开启)

CPU负载及使用率

造成cpu load过高的原因有:full gc次数增大或者死循环(首先要找到那几个线程在占用cpu,再通过线程的id值在堆栈文件中查找具体的线程,来判断问题)

docker

二进制安装及配置

wget 解压
docker.service docker.socket containerd.service
修改docker默认的网段和地址要在/etc/docker/daemon.json中修改:镜像加速、允许不安全的镜像仓库、修改地址、网段等配置;并使用systemctl管理

nexus

拉取镜像 运行(前面配置没有问题就可以成功login) ps:放在/opt/下

nginx做反向代理

安装nginx,用nginx做转发,添加域名;在push的时候会出现问题,要修改默认上传文件大小(默认很小)

k8s

安装k8s:安装kubeadm,kubelet,kubectl;使用阿里云的yum镜像仓库,在daemon.json中设置exec-opts:[“native.cgroupdriver=systemd”],否则docker和k8s的cgroupdriver可能冲突;kubeadm init,并添加flannel.yaml并应用
去除污点:kubectl taint nodes --all node-role.kubernetes.io/master-
在创建ingress-controller的时候,主要端口冲突的问题

pod生命周期

init容器:在应用容器启动前运行完成,可以用来延迟应用容器的启动;可以包含一些安装过程中不存在的实用工具或个性代码

探针

livenessProbe存活探针:指示容器是否正在运行 readinessProbe就绪探针 startupProbe启动探针:为了防止存活探针误杀正在启动的容器,一般可以给容器配置一个启动探针

linux中fork和exec的区别

fork生成的子进程是一个与正在运行的进程完全相同的副本;总结就是fork是进程的分身(执行相同的程序而分为两个进程)而exec是进程的变身(进程执行而程序发生了变化)

python的安装步骤

安装依赖 在opt下wget软件包,并解压 编译 、make 、make install 绝对路径执行python和pip 添加软连接,便于直接使用

使用dockerfile构建镜像,并作为yaml文件中的镜像源

我们可以在构建镜像的时候自定义内容,例如nginx可以增添新的路径及页面等

资源限制及优先级

可以对CPU、内存进行资源限制;也可以对某一命名空间下的内存和cpu统一进行限制
优先级有两种方式:一种是Qos发方式,另一种是pod优先级,在pod.spec.PriorityClassName后边添加pod名称即可

iptables四表五链

iptables是linux系统下应用层内置控制防火墙的工具
FORWARD链是转发链,只有在网卡数大于等于2的时候才具有
Filter表:过滤数据包 NAT表:用于网络地址转换 Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS Raw表:决定数据包是否被状态跟踪机制处理

jenkins

安装

在安装的时候,如果出现该jenkins实例似乎已离线的问题,我们首先需要检查本机是否能够ping通外网,如果没有问题,再去进入容器内部检查容器内是否可以ping通外网,还有注意DNS解析的问题;如果容器内不能连通外网,就要检查flannel插件的问题或者在node不多等情况下,通过设置iptables策略来使得pod出网,这个问题就可以解决

pipeline

下面是一个用钉钉机器人给钉钉群推送消息的功能,也可以设置定时推送
pipeline {
agent any
stages {
stage(‘test’){
steps{
sh ‘’‘curl -XPOST ‘https://oapi.dingtalk.com/robot/send?access_token=404e1fdc5aafa19563960ebb2035c960cc42ebd65d15c9705152a6dd2fa92949’ -H ‘Content-Type: application/json’ -d ‘{“msgtype”: “text”,“text”: {“content”:"’“time$(date +%Y-%m-%d_%H-%M-%S)”’"}}’
‘’’
}
}
}

}

结合gitlab

拉取gitlab代码,自动触发构建等等

自动构建大致流程

拉取代码,构建、测试、部署、存储等这些流程

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

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

相关文章

linux remoteproc驱动中elf解析函数实现分析

linux remoteproc驱动中elf解析函数实现分析 1 ELF文件组织结构2 ELF_GEN_FIELD_GET_SET3 elf 各种header解析接口以及其实现3.1 elf header3.1.1 elf header解析接口3.1.2 elf header各个解析函数为:3.1.2.1 ELF_GEN_FIELD_GET_SET(hdr, e_entry, u64)3.1.2.2 ELF_…

[OnWork.Tools]系列 07-Web浏览器

简介 简易的web浏览器,适合临时使用 组件安装 第一次使用时可能需要安装相关组件 点击确定 会打开官方地址 WebView2 - Microsoft Edge Developer 点击立即下载 跳转到新的地址 WebView2 - Microsoft Edge Developer 有外网的选择第一个,无网络的在有网络的电脑打开后选择…

SpringCloud实用篇4——MQ RabbitMQ SpringAMQP

目录 1 初识MQ1.1 同步和异步通讯1.1.1 同步通讯1.1.2 异步通讯 1.2 技术对比 2.快速入门2.1 安装RabbitMQ2.1.1 单机部署2.1.2集群部署 2.2 RabbitMQ消息模型2.3.导入Demo工程2.4 入门案例2.4.1 publisher实现2.4.2 consumer实现 3 SpringAMQP3.1 Basic Queue 简单队列模型3.1…

【源码分析】Nacos如何是现在CP模式下基于Raft协议的节点注册逻辑

而对于持久节点,有一个Raft协议的实现 我们知道Raft算法作为一个CP协议,它通过的是Leader节点来向各个节点进行数据的同步。 所以会先判断当前节点是否是Leader节点,如果不是则将请求转发到Leader节点进行处理。 而如果就是Leader节点&am…

二、Linux中权限、shell命令及运行原理

shell命令及运行原理 我们使用Linux时,并不是直接访问操作系统,为什么不是直接访问操作系统呢? 如果用户直接访问操作系统,不仅使用难度大,而且不安全,容易把系统文件损坏。 那么我们通常是如何访问操作系统…

全网最牛,接口自动化测试实现详细总结,23年测试进阶之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 为什么要做接口自…

Java String类【超详细】

文章目录 1. 字符串构造2. String对象的比较2.1 比较是否引用同一个对象2. 2boolean equals(Object anObject) 方法:按照字典序比较2.3 int compareTo(String s) 方法: 按照字典序进行比较2.4 int compareToIgnoreCase(String str) 方法:与compareTo方式…

图像 处理 - 开源算法集合

图像 处理 - 开源算法集合 1. 图像 检测 - MMDetection 简介2. 图像 分割 - MMSegmentation 简介3. 图像 其他 - MMPreTrain 以下介绍的每个 开源算法集合 均包含多种 开源算法 1. 图像 检测 - MMDetection 简介 简介:MMDetection 是一个基于 PyTorch 的目标检测开…

【C++进阶之路】map与set的基本使用

文章目录 一、set系列1.set①insert②find③erase④lower_bound与upper_bound 2.multiset①count②equal_range 二、map系列1.map①insert1.插入pair的四种方式2.常用两种方式 ②[]2.multimap①count②equal_range 一、set系列 1.set ①insert 函数分析(C98&…

解决Windows:Call to undefined function exif_imagetype()

很明显,是php安装时没有打开某些扩展,以致不能执行exif_imagetype()这个方法,因此需要打开。 网上很多人说需要打开下面这两个扩展: extension=php_exif.dll extension=php_mbstring.dll 但只说对了一半,我一开始也按照网上文章说的打开这两个扩展,但是还是同样错误。…

2. 软件需求 面向对象分析

目录 1. 软件需求 1.1 需求分类 1.2 需求获取 1.3 需求分析 2. 面向对象分析(OOA) 2.1 统一建模语言 UML 2.2 用例模型 2.2.1 用例图的元素 2.2.2 识别参与者 2.2.3 合并需求获得用例 2.2.4 细化用例描述 2.3 分析模型 2.3.1 定义概念类 …

3.1线程之间共享数据的问题

线程之间共享数据的问题 从整体上来看,所有线程之间共享数据的问题,都是修改数据导致的。如果所有的共享数据都是只读的,就没有问题,因为一个线程所读取的数据不受另一个线程是否正在读取相同的数据而影响。然而,如果…

慧算账的千亿财税市场之旅,从当好中小企业财税之友开始

数字化转型浪潮下,各个行业都在不断升级进化。不过,各领域中头部企业与中小企业数字化的方式有所不同。头部企业资金实力雄厚,对于数字化架构的搭建,往往会以内设部门加外部合作的方式来推进,而中小企业在可投入研发资…

Vscode无法写入文件 NoPermissions (FileSystemError): Error: EACCES: permission

用Vscode想要新建一个index.html的时候遇到了下图问题,说没有权限无法写入文件。 没有权限,咱们给他加上权限哈哈哈,博主是Mac电脑,如下操作: 1.找到你项目的根目录,右键,点击“显示简介”。 …

2023华数杯C题总结

前言 对这次比赛中遇到的问题和卡住的思路进行复盘,整理相关心得,供以后比赛参考 🧡1.认识数据类型🧡 连续变量:母亲年龄、妊娠时间、CBTS、EPDS、HADS、整晚睡醒时间、婴儿年龄 无序分类变量:婚姻状态、…

Java中ArrayList常用方法的学习

Java中ArrayList常用方法的学习 需求分析代码实现小结Time 需求分析 ArrayList集合的常用方法学习 代码实现 java.util.ArrayList;/*** Author:LQ* Description:* Date:Created in 16:45 2023/8/9*/ public class ListTest {public static void main(String[] args) {ArrayLis…

哪个版本的FL Studio更适合我?2023年到底应该入手哪一款FL Studio?

很多打算入手正版FL Studio的新手朋友都会纠结一个问题:哪个版本的FL Studio更适合我,2023年到底应该入手哪一款FL Studio?本文会介绍每个版本之间的差异点,并带大家选择适合自己的FL Sudio版本。 FL Studio Mac-安装包&#xff…

B2B2C线上直播购物商城开源搭建--多语言+自带商品库

要搭建一个B2B2C线上直播购物商城,可以考虑以下步骤: 1. 确定技术需求:确定前端和后端使用的技术栈。 2. 搭建基础环境:购买一个域名和服务器空间,安装和配置相应的操作系统和数据库。 3. 开发商城平台:…

LeetCode150道面试经典题--罗马数字转整数(简单)

目录 1.题目 2.示例 3.思路 4.案例代码(Java) 1.题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L …

UE 5 GAS Gameplay Ability System

游戏技能系统 简称(GAS),是一个健壮的,高度可扩展的gameplay框架,通常用于构件RPG、MOBA等游戏的完整战斗逻辑框架。 通过GAS,可以快速地制作游戏中的主动/被动技能、各种效果Buff、计算属性伤害、处理玩家…