linux环境搭建私有gitlab仓库以及启动gitlab后出现卡顿处理办法

news2024/9/21 16:32:44
  1. 搭建之前,需要安装相应的依赖包,并且要启动sshd服务

(1).安装policycoreutils-python openssh-server openssh-clients

[root@VM-0-2-centos ~]# sudo yum install -y curl policycoreutils-python openssh-server openssh-clients 
[root@VM-0-2-centos ~]# sudo systemctl enable sshd 
[root@VM-0-2-centos ~]# sudo systemctl start sshd 

(2).在安装时可能会报错

在安装yum install -y curl policycoreutils-python openssh-server openssh-clients时可能会报如下错误:
Error: Unable to find a match: policycoreutils-python
产生这个错误的原因是未配置yum源,所以需要安装 EPEL 源,命令如下:
[root@VM-0-2-centos ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

然后运行

[root@VM-0-2-centos ~]# yum install -y curl policycoreutils-python3 openssh-server openssh-clients

(3).安装postfix

gitlab配置需要用到邮件发送,所以需要安装postfix
[root@VM-0-2-centos ~]# yum -y install postfix
#安装完之后,启动postfix
[root@VM-0-2-centos ~]# systemctl start postfix
启动过程中如果报错:Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details.
解决办法,vim打开/etc/postfix/main.cf, 修改如下两项,修改之前可以先备份:
#修改 /etc/postfix/main.cf的设置  
inet_protocols = ipv4  
inet_interfaces = all
修改完成后,再次启动,就不会报错了,设置postfix为开机自启动
[root@VM-0-2-centos ~]# systemctl enable postfix
查看启动状态
[root@VM-0-2-centos ~]# systemctl status postfix

2.gitlab安装

centos系统的下载地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
找最新版去下载 gitlab-ce-15.8.3-ce.0.el7.x86_64.rpm
下载rpm包并安装
[root@VM-0-2-centos ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.8.3-ce.0.el7.x86_64.rpm
[root@VM-0-2-centos ~]# mkdir /usr/local/gitlab
[root@VM-0-2-centos ~]# mv gitlab-ce-15.8.3-ce.0.el7.x86_64.rpm /usr/local/gitlab/
[root@VM-0-2-centos ~]# cd /usr/local/gitlab/
[root@VM-0-2-centos ~]# rpm -i itlab-ce-15.8.3-ce.0.el7.x86_64.rpm 
[root@VM-0-2-centos ~]#  warning: itlab-ce-15.8.3-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
[root@VM-0-2-centos ~]# error: Failed dependencies:
    policycoreutils-python is needed by itlab-ce-15.8.3-ce.0.el7.x86_64.rpm
# 如果出现上面这个报错就执行yum install policycoreutils-python

如果运行上面的yum install policycoreutils-python命令还是报错,解决办法:

可以在安装rpm包命令的后面加两个参数,如:

[root@VM-0-2-centos ~]# rpm -i itlab-ce-15.8.3-ce.0.el7.x86_64.rpm --nodeps --force
--force是强制安装
--nodeps是不依赖关系
加上那两个参数的意义就在于,
安装时不再分析包之间的依赖关系而直接安装,
也就不会再提示error: Failed dependencies:这样的错误了

上述 rpm -i itlab-ce-15.8.3-ce.0.el7.x86_64.rpm --nodeps --force命令成功后展示如下:

warning: gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

安装完成之后,会出现gitlab官方文档地址https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

3.配置并启动gitlab-ce

gitlab安装完成后,需要设置一个访问地址(或域名),打开/etc/gitlab/gitlab.rb,将默认的external_url = 'http://git.example.com'修改为自己的IP地址:http://xxx.xx.xxx
[root@VM-0-2-centos ~]# vim /etc/gitlab/gitlab.rb

原来默认的external_url

## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://git.example.com'

修改成自己定义的url地址,端口自己设置一个,别和已有的冲突了

## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://152.26.xx.xx:8181'

修改完成后:wq保存退出,执行以下命令,让配置生效

[root@VM-0-2-centos ~]# gitlab-ctl reconfigure

启动Gitlab

[root@VM-0-2-centos ~]# gitlab-ctl start
[root@VM-0-2-centos ~]# gitlab-ctl start
ok: run: gitaly: (pid 6638) 186s
ok: run: gitlab-monitor: (pid 6656) 186s
ok: run: gitlab-workhorse: (pid 6659) 186s
ok: run: logrotate: (pid 6703) 185s
ok: run: nginx: (pid 6709) 185s
ok: run: node-exporter: (pid 6715) 184s
ok: run: postgres-exporter: (pid 6720) 184s
ok: run: postgresql: (pid 7324) 44s
ok: run: prometheus: (pid 6752) 171s
ok: run: redis: (pid 6761) 171s
ok: run: redis-exporter: (pid 6765) 170s
ok: run: sidekiq: (pid 7299) 45s
ok: run: unicorn: (pid 7476) 18s

启动完成后,在浏览器输入http://152.26.xx.xx:8181,就是gitlab的登录首页了

重启下服务,刷新页面就可以访问了

[root@VM-0-2-centos ~]# gitlab-ctl restart

为了避免8080端口冲突问题,可以修改下unicorn的默认端口,vim打开/etc/gitlab/gitlab.rb配置文件,新增一项unicorn['port'] = 8101

## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://152.26.xx.xx:8181'

unicorn['port'] = 8101

修改完成后:wq保存退出,执行gitlab-ctl reconfigure命令,让配置生效,再重新启动服务

[root@VM-0-2-centos ~]# gitlab-ctl reconfigure
[root@VM-0-2-centos ~]# gitlab-ctl stop
[root@VM-0-2-centos ~]# gitlab-ctl start
gitlab常用命令
启动服务:gitlab-ctl start
查看状态:gitlab-ctl status
停掉服务:gitlab-ctl stop
重启服务:gitlab-ctl restart
让配置生效:gitlab-ctl reconfigure

当运行命令gitlab-ctl reconfigure时,如果报错:STDERR: initdb: error: invalid locale settings; check LANG and L...,这是默认字符集问题

There was an error running gitlab-ctl reconfigure:

execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8] (postgresql::enable line 49) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
STDOUT: The files belonging to this database system will be owned by user "gitlab-psql".
This user must also own the server process.
STDERR: initdb: error: invalid locale settings; check LANG and LC_* environment variables
---- End output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ----
Ran /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 returned 1

解决办法

  1. 确保服务器内存在4G以上

  1. 修改配置

vim /etc/profile
# 将以下内容添加到配置文件末尾
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# 重读环境变量
[root@localhost src]# source /etc/profile
# 重新加载
[root@localhost src]# gitlab-ctl reconfigure
第一次进入最好修改密码

gitlab初次安装后,登录gitlab网页的管理员账号和密码各是什么?

在安装完启动 gitlab 后,应该就可以在网页上访问到 gitlab 的登录界面了,不过 gitlab已事先创建了一个账号了,这个账号就是管理员账号,这个管理员账号的账号名为 root,而密码在一个自动生成的文件 /etc/gitlab/initial_root_password 中(密码不会含空格),且会在 24 小时后自动被删除,实际上,在第一次使用命令 gitlab-ctl reconfigure 初始化 gitlab 配置时,gitlab其实已经提示过这些信息
Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.

4.搭建GItLab以后出现卡顿现象

原因一

(1).原因分析

gitlab 启动运行占用了大量的内存,2G内存在启动后已经所剩无几,想再进行git 相关操作自然也就会出现卡顿现象.正常 centos 应该是启用 swap 分区的,但是阿里云,腾讯云的服务器却没有swap分区
通过以下命令查看swap分区情况:
cat /proc/swaps

(2).解决方法

1).创建 swap 分区(这里需要等待几秒)
dd if=/dev/zero of=/swap bs=512 count=8388616
注意:创建swap大小为bs*count=4294971392(4G)
2).通过mkswap命令将上面新建出的文件做成swap分区
mkswap /swap
3).查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
# 查看参数
cat /proc/sys/vm/swappiness
# 设置参数
# sysctl -w vm.swappiness=60
4).启用 swap 分区
swapon /swap
 
echo “/swap swap swap defaults 0 0” >> /etc/fstab
5).再次使用cat /proc/swaps 查看swap分区是否启动

可以看到,swap分区已经启用,现在通过 gitlab 进行操作会发现很流畅

原因二

  • 查看是否有进程在消耗内存,最耗内存的是哪一个 杀死进程或者优化后启动

  • 是不是磁盘已经满了,塞不下了 ,然后在回收垃圾?

(1).查看是否有进程在消耗内存,最耗内存的是哪一个 杀死进程或者优化后启动

通过top -c 命令查看cpu消耗情况, -c:显示 完整命令:启动进程的命令语句

# top -C                                                                                                                
root@zph-IdeaCentre-GeekPro-14IOB:/home/zph# top -c

top - 09:36:10 up 25 min,  1 user,  load average: 1.06, 1.37, 1.19
任务: 499 total,   1 running, 497 sleeping,   0 stopped,   1 zombie
%Cpu(s):  3.0 us,  0.5 sy,  0.0 ni, 96.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15783.1 total,   5079.5 free,   5819.9 used,   4883.7 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   9379.0 avail Mem 

 进程号 USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND                                                                                                                             
   6076 zph       20   0 9103720 290768 131948 S  27.2   1.8   4:29.96 /opt/有道云笔记/ynote-desktop --type=renderer --no-sandbox --field-trial-handle=13907500021522840268,10117407446205598093,131+ 
   5891 zph       20   0 4503324 167160  58796 S   5.3   1.0   0:12.30 /opt/有道云笔记/ynote-desktop /opt/有道云笔记/resources/app.asar/dist/server.js                                           
   4969 zph       20   0   16.6g 191040 168444 S   4.6   1.2   1:48.35 /opt/google/chrome/chrome --type=gpu-process --enable-crashpad --crashpad-handler-pid=4529 --enable-crash-reporter=12ee17c8-6041-4+ 
   5408 zph       20   0 3669912 321492  79652 S   4.0   2.0   0:45.83 /usr/local/sunlogin/bin/sunloginclient                                                                                              
   9713 zph       20   0   24.7g 269076 142628 S   3.3   1.7   0:32.19 /opt/google/chrome/chrome --type=renderer --enable-crashpad --crashpad-handler-pid=4529 --enable-crash-reporter=12ee17c8-6041-4093+ 
   5868 zph       20   0  300016  77896  58992 S   2.6   0.5   0:25.76 /opt/有道云笔记/ynote-desktop --type=gpu-process --field-trial-handle=13907500021522840268,10117407446205598093,131072 --enab+ 
   4005 zph       20   0 7205848 520776 193396 S   2.0   3.2   7:13.90 /usr/bin/gnome-shell                                                                                                                
   9855 zph       20   0   24.5g 115028  78792 S   2.0   0.7   0:03.77 /opt/google/chrome/chrome --type=renderer --enable-crashpad --crashpad-handler-pid=4529 --enable-crash-reporter=12ee17c8-6041-4093+ 
   9895 zph       20   0   24.5g 129396  88480 S   2.0   0.8   0:04.54 /opt/google/chrome/chrome --type=renderer --enable-crashpad --crashpad-handler-pid=4529 --enable-crash-reporter=12ee17c8-6041-4093+ 
    877 root      20   0  613132  22012  19416 S   1.0   0.1   0:18.90 /usr/local/sunlogin/bin/sunloginclient -m service                                                                                   
   3803 root      20   0  480332 268624 141112 S   1.0   1.7   1:08.16 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3               
   5150 zph       20   0  160.8g 342600 117848 S   1.0   2.1   7:01.54 /opt/google/chrome/chrome --type=renderer --enable-crashpad --crashpad-handler-pid=4529 --enable-crash-reporter=12ee17c8-6041-4093+ 
   4518 zph       20   0  413220  39464  28612 S   0.7   0.2   0:03.56 /opt/sogoupinyin/files/bin/sogoupinyinService-watchdog                                                                              
   4668 zph       20   0   24.6g 181684 104888 S   0.7   1.1   1:33.21 /opt/google/chrome/chrome --type=renderer --enable-crashpad --crashpad-handler-pid=4529 --enable-crash-reporter=12ee17c8-6041-4093+ 
   5191 zph       20   0 9892.6m   1.4g  73460 S   0.7   8.9   3:20.14 /opt/PhpStorm-203.7717.64/jbr/bin/java -classpath /opt/PhpStorm-203.7717.64/lib/bootstrap.jar:/opt/PhpStorm-203.7717.64/lib/extens+ 
  11957 root      20   0   15764   4744   3600 R   0.7   0.0   0:00.05 top -c                                                                                                                              
    172 root      20   0       0      0      0 I   0.3   0.0   0:02.70 [kworker/u32:1-phy0]                                                                                                                
    303 root      20   0       0      0      0 D   0.3   0.0   0:04.97 [kworker/u32:6+phy0]                                                                                                                
    314 root      20   0       0      0      0 I   0.3   0.0   0:00.12 [kworker/2:2-events]                                                                                                                
    816 root      20   0   87260   6264   5788 S   0.3   0.0   0:03.41 /usr/local/sunlogin/bin/oray_rundaemon -m server                                                                                    
    908 root      20   0 2305604  47128  29132 S   0.3   0.3   0:02.76 /usr/bin/containerd                

使用kill -9 杀死进程

(2).查看磁盘是否已经满了,释放磁盘空间
#查看磁盘使用情况
df -h

root@zph-IdeaCentre-GeekPro-14IOB:/home/zph# df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            7.7G     0  7.7G    0% /dev
tmpfs           1.6G  2.7M  1.6G    1% /run
/dev/nvme0n1p5   92G   67G   20G   78% /
tmpfs           7.8G  356M  7.4G    5% /dev/shm
发现磁盘/dev/nvme0n1p5 92G 67G 20G 78% /,清除一些没用的垃圾,或者给服务器扩容
再次使用top查看cpu使用情况,发现磁盘空间占用下降,刷新gitlab页码,速度流畅

原因三

(1).原因分析
cpu占用不高,但是内存占用高,也许是gitlab配置原因
(2).解决办法
修改gitlab配置,具体根据自己服务器情况酌情修改,案例如下:
# vim /etc/gitlab/gitlab.rb
$ vim /etc/gitlab/gitlab.rb

gitlab_rails['time_zone'] = 'Asia/Shanghai'

#减少进程数,默认是被注释掉的,官方建议该值是CPU核心数加一,可以提高服务器的响应速度,如果内存只有4G,或者服务器上有其它业务,就不要改了,以免内存不足,另外,这个参数最小值是2,设为1,服务器可能会卡死
unicorn['worker_processes'] = 2
#修改内存占用
unicorn['worker_memory_limit_min'] = "100 * 1 << 20"
unicorn['worker_memory_limit_max'] = "250 * 1 << 20"

#减少sidekiq并发数,sidekiq这两个参数都改成1
sidekiq['max-concurrency'] = 1
#减少sidekiq并发
sidekiq['min-concurrency'] = 1

#减少数据库缓存(默认为256MB 改为128MB)
postgresql['shared_buffers'] = "128MB"  
#减少数据库并发数(默认为8 改为4)
postgresql['max_worker_processes'] = 4

#禁用prometheus_monitoring 网络监控
prometheus_monitoring['enable'] = false
修改完后一定要重启服务
gitlab-ctl reconfigure
gitlab-ctl restart
之后查看内存情况
root@zph-IdeaCentre-GeekPro-14IOB:/home/zph# free -h
              总计         已用        空闲      共享    缓冲/缓存    可用
内存:        15Gi       5.5Gi       5.2Gi       323Mi       4.8Gi       9.4Gi
交换:       2.0Gi          0B       2.0Gi
设置后内存占用还是比较多,建议创建swap虚拟内存

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

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

相关文章

C++【类与对象】

文章目录类与对象&#xff08;1&#xff09;类与对象一1.0.面向过程和面向对象初步认识1.1.类的引入1.2.类的定义1.3.类的访问限定符及封装1.4.类的作用域1.5.类的实例化1.6.类的对象大小的计算1.8.类成员函数的this指针&#xff08;2&#xff09;类与对象二2.0类的6个默认成员…

LeetCode——51. N 皇后

一、题目 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案…

CS144-Lab4

概述 在实验0中&#xff0c;你实现了流量控制的字节流(ByteStream)的抽象概念。 在实验1、2和3中&#xff0c;你实现了该抽象概念与互联网提供的抽象概念之间的转换工具&#xff1a;不可靠的数据报(IP或UDP)。 现在&#xff0c;你已经接近顶峰&#xff1a;一个可以工作的TCP…

Word处理控件Aspose.Words功能演示:使用 C++ 在 Word 文档中查找和替换文本

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word Aspose API支持流行文件格式处理&#xff0c;并允…

如何使用MidJourney和ChatGPT制作动画短片?

Ammaar Reshi当我制作这部使用生成式人工智能制作的蝙蝠侠动画短片时——我不知道它会在不到一周的时间内获得 700 万次观看。想学&#xff01;给我们讲解下是整体的制作流程吧&#xff01;&#xff01;opusAmmaar Reshi我不是电影制作人&#xff0c;也从未写过剧本。我只是有还…

高频面试题|JVM虚拟机的体系结构是什么样的?

一. 前言最近有很多小伙伴都在找工作&#xff0c;他们在面试时经常被面试官问到一个问题&#xff1a;请说说JVM虚拟机的体系结构是什么样的?很多小伙伴都能说出堆、栈等相关内容&#xff0c;但面试官紧接着又问&#xff0c;你还知道其他内容吗&#xff1f;这时不少小伙伴就语塞…

STM32模拟SPI协议获取24位模数转换(24bit ADC)芯片AD7791电压采样数据

STM32模拟SPI协议获取24位模数转换&#xff08;24bit ADC&#xff09;芯片AD7791电压采样数据 STM32大部分芯片只有12位的ADC采样性能&#xff0c;如果要实现更高精度的模数转换如24位ADC采样&#xff0c;则需要连接外部ADC实现。AD7791是亚德诺(ADI)半导体一款用于低功耗、24…

C语言--回调函数

1. 什么是回调函数&#xff1f; 回调函数&#xff0c;光听名字就比普通函数要高大上一些&#xff0c;那到底什么是回调函数呢&#xff1f;恕我读得书少&#xff0c;没有在那本书上看到关于回调函数的定义。我在百度上搜了一下&#xff0c;发现众说纷纭&#xff0c;有很大一部分…

力扣-部门工资前三高的所有员工

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道稍微复杂的力扣sql练习题。 文章目录前言一、题目&#xff1a;185. 部门工资前三高的所有员工二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.其他总结前言 上一篇带大家练习了部门工资最高的…

CUDA硬件实现

CUDA硬件实现 文章目录CUDA硬件实现4.1 SIMT 架构4.2 硬件多线程NVIDIA GPU 架构围绕可扩展的多线程流式多处理器 (SM: Streaming Multiprocessors) 阵列构建。当主机 CPU 上的 CUDA 程序调用内核网格时&#xff0c;网格的块被枚举并分发到具有可用执行能力的多处理器。一个线程…

【C++】1.C++基础

1.命名空间 使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace关键字的出现就是针对这种问题的。 1定义 定义命名空间&#xff0c;需要使用到namespace关键字&#xff0c;后面跟命名空间的名字&#xff0c;然后接一对…

DepGraph:适用任何结构的剪枝

文章目录摘要1、简介2、相关工作3、方法3.1、神经网络中的依赖关系3.2、依赖关系图3.3、使用依赖图剪枝4、实验4.1、设置。4.2、CIFAR的结果4.3、消融实验4.4、适用任何结构剪枝5、结论摘要 论文链接&#xff1a;https://arxiv.org/abs/2301.12900 源码&#xff1a;https://gi…

软考高级-信息系统管理师之质量管理(最新版)

质量管理目录 项目质量管理质量管理基础质量与项目质量质量管理质量管理标准体系1、IS09000系列,8项基本原则如下。2、全面质量管理(TQM)3、六西格码意为“六倍标准差”,4、软件过程改迸与能力成熟度模型项目质量管理过程规划质量管理1、规划质量管理2、规划质量管理:输入3、…

【java】Spring Cloud --Spring Cloud 的核心组件

文章目录前言一、Eureka&#xff08;注册中心&#xff09;二、Zuul&#xff08;服务网关&#xff09;三、 Ribbon&#xff08;负载均衡&#xff09;四、Hystrix&#xff08;熔断保护器&#xff09;五、 Feign&#xff08;REST转换器&#xff09;六、 Config&#xff08;分布式配…

【C++】RBTree——红黑树

文章目录一、红黑树的概念二、红黑树的性质三、红黑树节点的定义四、红黑树的插入五、代码实现一、红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上…

Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题

之前的文章有关于更多操作方式详细解答&#xff0c;本篇基于前面的知识点进行操作&#xff0c;如果不了解可以先看之前的文章 Python爬虫&#xff08;1&#xff09;一次性搞定Selenium(新版)8种find_element元素定位方式 Python爬虫&#xff08;2&#xff09;-Selenium控制浏览…

看见统计——第四章 统计推断:频率学派

看见统计——第四章 统计推断&#xff1a;频率学派 接下来三节的主题是中心极限定理的应用。在不了解随机变量序列 {Xi}\{X_i\}{Xi​} 的潜在分布的情况下&#xff0c;对于大样本量&#xff0c;中心极限定理给出了关于样本均值的声明。例如&#xff0c;如果 YYY 是一个 N(0&am…

Spring系列-2 Bean的生命周期

背景&#xff1a; 作为Spring系列的第二篇&#xff0c;本文结合容器的启动流程介绍单例Bean的生命周期&#xff0c;包括Bean对象的创建、属性设置、初始化、使用、销毁等阶段&#xff1b;在此过程中会介绍Spring用于操作Bean或者BeanDefinition的相关扩展接口。 文章重心在于介…

Spring Boot 日志文件,你都会了吗?

目录 1、日志文件的作用 2、日志的使用 2.1、从程序中得到日志对象 2.2、使用日志 2.3、日志格式 3、日志级别 3.1、这样的日志级别有什么用&#xff1f; 3.2、日志级别分类和使用 3.3、日志级别设置 4、日志持久化 5、更简单的日志输出——lombok 5.1、对比 5.2、…

阅读源码和查看官方文档,是解决问题最高效的办法。

作为一个工作8年的老程序员告诉你&#xff1a;阅读源码和查看官方文档&#xff0c;是解决问题最高效的办法。不信你来看&#xff0c;这个困扰了读者半天的问题我查了源码和文档后瞬间解决。 前言 上周五有位读者私信我一个问题&#xff0c;说困扰了他半天&#xff0c;研究了一…