Tomcat的安装即使用
Tomcat的概念
Tomcat服务器是Java语言开发的,免费的开放源代码的Web应用服务器。
Tomcat处理静态HTML的能力远不及Apache或者Nginx,通常是作为一个Servlet和JSP容器,单独运行在后端。
Tomcat是由三个功能组合而成:
java servlet:Tomcat是一个servlet容器,负责管理和执行java-servlet,服务端的java程序,处理客户端的http请求后台响应
java server:服务端的配置,pages动态页面的技术就是由Java代码完成的,tomcat既可以作为以java代码为基础的动态页面,也可以处理和转发动态请求。
Tomcat的并发能力很差,仅适用于小项目
Tomcat核心组件
web容器:处理web请求,影响,动态页面的展示
jsp容器:解析index.jsp中java代码转换为servlet的代码,然后servlet编译执行。
jsp是一种技术模板,类似于html语言,允许在html文件当中,嵌入java代码
servler容器:接受web容器的请求,负责加载,初始化,执行和管理
connector:接受外部的请求已经响应请求
container:包含了engine host context webapp四个组件组成
service:包含了connector和container
engine:引擎,用来管理多个虚拟主机,一个service只能有一个engine
host;代表一个虚拟主机,也可以理解为站点
context:对应web应用
wrapps:最终的封装器,容器的最底层,index.jsp
Tomcat的安装
安装java
apt -y install openjdk-8-jdk-headless
把apache-tomcat安装包放到opt目录下并解压
重命名为tomcat并移到/usr/local/目录下
tomcat目录下的内容:
bin:启动和关闭脚本文件
conf:tomcat的配置文件
logs:tomcat的日志文件
webapps:保存不同项目的应用目录
work:工作目录
temp:临时文件保存目录
切换到/usr/local/bin目录下,执行
./startup.sh
#开启tomcat
netstat -antp | grep 8080
#查看端口是否正常启动
在浏览器上输入对应的网址加上8080端口,查看网页是否正常
配置多台虚拟主机
cd /usr/local/tomcat/webapps
mkdir test1 test2
cd test1/
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test1.com");%></body></html>保存退出
cd ../test2
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test2.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" />
</Host><Host name="www.test2.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test2" path="" reloadable="true" /></Host>保存退出
cd ../conf
./startup.sh
vim /etc/hosts192.168.42.20 www.test1.com www.test2.com保存退出
www.test1.com域名
www.test2.com域名
Tomcat的优化和动静分离
Tomcat的优化
默认的安装情况下,tomcat经常会假死的情况,所以tomcat需要进行优化
优化的三个方面
1、tomcat的配置优化
2、操作系统的内核优化
3、jvm调优
tomcat的配置优化
在tomcat的配置文件的第69行<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxThreads="500"minSpareThreads="50"enableLookkups="false"disableUpploadTimeout="true"acceptCount="300"processorCache="500"URIEncoding="UTF-8"compression="on"compressionMinSize="2048"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"/>
8080: tomcat对外提供访问的默认端口
protocol: 默认的协议就是http/1.1
connectionTimeout:连接的超时时间 20000毫秒=20秒
redirectPort:如果是https,自动转到8843,为https协议服务的
maxThreads=“500” :tomcat可以创建最大的线程数
minSpareThreads=“50”:空闲线程的最小数量,用来处理溢出部分的请求
enableLookkups=“false”:禁用反向解析,提高访问速度
disableUpploadTimeout=“true”:开启上传的超时时间,连接在上传期间不存在超时的情况
acceptCount=“300”:当线程都在忙碌的时候,可以排队等待处理的请求数量
processorCache=“500”:连接器可以缓存的最大处理的数量
URIEncoding=“UTF-8”:设置字符集编码
compression=“on”:开启响应内容的压缩功能
compressionMinSize=“2048”:如果文件大小超过2M(2048KB),才会进行压缩。
compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png”:支持被压缩的文件类型,包括HTML、XML、JavaScript、CSS、纯文本、GIF图像、JPEG图像和PNG图像。
在网页浏览tomcat的配置
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml第20行
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />改成
allow=.*/>
vim /usr/local/tomcat/conf/tomcat-user.xml
第22行
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
可以在网页上查看tomcat的配置
操作系统的内核优化
在/etc/sysctl.conf文件配置操作系统的内核优化
net.ipv4.ip_forward=0 #开启服务数据的路由功能
net.ipv4.tcp_syncookies=1 #启动SYN cookies功能,避免tcp SYN的攻击
net.ipv4.tcp_max_tw_buckets=6000 #系统中允许出现的最大的time_wait的数量
net.ipv4.tcp_tw_recycle 和 net.ipv4.tcp_tw_reuse:#启用TIME_WAIT套接字快速回收和重用。
vm.overcommit_memory=0:#控制内存超额分配策略,避免OOM killer杀掉进程。
net.ipv4.ip_local_port_range=1024 65000
net.ipv4.tcp_window_scaling=1:#启用TCP窗口缩放功能,允许大窗口的TCP传输。
net.ipv4.conf.default.accept_source_route:#不接受源路由,增加网络安全性。
kernel.sysrq=0:#禁用了内核的SysRq功能,SysRq允许在系统崩溃或出现问题时执行一些调试操作。
kernel.core_uses_pid=1:#设置核心转储文件名中包含进程ID,有助于标识是哪个进程导致了核心转储。
kernel.msgmnb 和 kernel.msgmax:#增加IPC消息队列的默认和最大大小,用于进程间通信。
kernel.shmmax 和 kernel.shmall:#调整共享内存的最大大小和分配页面数。
jvm优化
vim /usr/local/tomcat/bin/catalina.sh
第119行
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -Xmn768m -XX:ParallelGCThreads=2 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -Djava.awt.headless=true -XX:+DisableExplicitGC"
解析
$JAVA_OPTS -server jvm服务端的优化:
-Xms2048m:设置JVM分配的最小内存为2048MB。
-Xmx2048m:设置JVM分配的最大内存为2048MB。
2核4G:设置成的内存
官方建议,初始大小核最大值设置成一样的值,一般是物理内存大小的一般
-Xmn768m:设置新生代的内存大小为768,建议设置成整个堆内存大小的3/8
-XX:ParallelGCThreads=2:设置资源回收器的线程数量是2
-XX:MetaspaceSize=128m:设置元空间的初始大小
-XX:MaxMetaspaceSize=512m:设置元空间的最大值,元:都是保存数据的核心信息
-Djava.awt.headless=true :启用无图形界面的模式,防止在linux系统下,web页面无法正常显示图片
-XX:+DisableExplicitGC:垃圾回收机制的信息在后台显示
内存匹配改变
Eden Space: 堆内存 用来存储新创建的对象,这一部分的是完全分配给新创建的对象使用
G1 Old Gen:堆内存 存储的是长时间活动的对象
Survivor Space :堆内存,存储中中生代的对象
CodeHeap ‘non-nmethods’:非堆内存,存储已经编译的代码
CodeHeap ‘non-profiled nmethods‘:非堆内存,已经被压缩的类定义
CodeHeap ‘profiled nmethods’:非堆内存当中的元数据信息
Compressed Class Space:存储已压缩的类定义
Metaspace:元数据空间的大小
ajp:ajp是一种协议,ajp协议:是tomcat服务端和前端的服务器进行连接的协议
作用:提供负载均衡和高效请求的转发
nio:nio技术:异步非阻塞通信
和前端服务器通信的端口是8009
Tomcat的动静分离
nginx1服务器
vim nginx.confupstream tomcat {server 192.168.42.30:8080 weight=3;server 192.168.42.40:8080 weight=2;}...location ~* \. jsp$ {proxy_pass http://tomcat;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header HOST $host;#设定后端服务器收到的请求访问的主机名,域名,ip端口。默认的proxy_pass#指定的主机名,是代理的主机名,不是客户端的真实主机名 }保存退出systemctl restart nginx
tomcat第一台
cd /usr/local/tomcat/webapps
mkdir test1
cd test1/
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test1.com");%></body></html>保存退出cd /usr/local/tomcat/conf
vim server.xml<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" />
</Host>
tomcat第二台
cd ../test2
vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 2,http://www.test2.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="www.test2.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test2" path="" reloadable="true" /></Host>保存退出
cd ../conf
./startup.sh
按照以下配置配置出tomcat的动静分离
客户端: 浏览器
nginx1: 调度器 192.168.42.20
nginx2 静态页面 192.168.42.30
nginx3 静态页面 192.168.42.40
tomcat1: 后端服务器1 动态 192.168.42.21
tomcat2: 后端服务器2 动态 192.168.42.22
调度器
cd /usr/local/nginx/conf
vim nginx.donf#全局stream {upstream xy104 {server 192.168.42.30:80;server 192.168.42.40:80;}server {listen 81;proxy_pass xy104;}}保存退出
systemctl restart nginxnginx2的配置
cd /usr/local/nginx/html
vim index.htmlthis is xy104保存退出
cd ../conf
vim nginx.conf#http模块upstream tomcat {server 192.168.42.21:8080;server 192.168.42.22:8080;}#server模块server {....keepalive_timeout 0;location ~* \.jsp$ {proxy_pass http://tomcat;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded-for;proxy_set_header Host $host;}....}保存退出
systemctl restart nginxnginx3的配置
cd /usr/local/nginx/html
vim index.htmlthis is xy105保存退出
cd ../conf
vim nginx.conf
#http模块upstream tomcat {server 192.168.42.21:8080;server 192.168.42.22:8080;}#server模块server {....keepalive_timeout 0;location ~* \.jsp$ {proxy_pass http://tomcat;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded-for;proxy_set_header Host $host;}....}保存退出
systemctl restart nginxtomcat1的配置cd /usr/local/tomcat/webappsmkdir test1cd test1/vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,http://www.test1.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" />
</Host>
cd ../bin
./shutdown.sh
./startup.shtomcat2的配置cd /usr/local/tomcat/webappsmkdir test2cd test2/vim index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 2,http://www.test2.com");%></body></html>保存退出
cd /usr/local/tomcat/conf
vim server.xml<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test2" path="" reloadable="true" />
</Host>
cd ../bin
./shutdown.sh
./startup.sh
相关文章:
Tomcat的安装即使用
Tomcat的概念 Tomcat服务器是Java语言开发的,免费的开放源代码的Web应用服务器。 Tomcat处理静态HTML的能力远不及Apache或者Nginx,通常是作为一个Servlet和JSP容器,单独运行在后端。 Tomcat是由三个功能组合而成: java servlet&…...
外包干了9天,技术退步明显。。。。。
时光荏苒,转眼我已是一个拥有近四年功能测试经验的大专生。19年,我满怀激情地通过校招进入湖南某知名软件公司,期待在这里开启我的职业生涯。然而,长时间的舒适环境让我渐渐失去了前进的动力,技术停滞不前,…...
梳理你的思路(从OOP到架构设计)_基本OOP知识04
目录 1、 主动型 vs.基於被动型 API 1)卡榫函数实现API 2)API的分类 3)回顾历史 4)API >控制力 2、 结语&复习: 接口与类 1)接口的表示 2)Java的接口表示 1、 主动型 vs.基於被动…...
每天40分玩转Django:简介和环境搭建
Django简介和环境搭建 一、课程概述 学习项目具体内容预计用时Django概念Django框架介绍、MVC/MTV模式、Django特点60分钟环境搭建Python安装、pip配置、Django安装、IDE选择45分钟创建项目项目结构、基本配置、运行测试75分钟实战练习创建个人博客项目框架60分钟 二、Djang…...
OpenCV相关函数
一、Sobel算子函数 (cv2.Sobel) 功能 Sobel算子是一个梯度算子,用于边缘检测。通过计算图像中像素的梯度,Sobel算子可以检测出水平和垂直方向上的边缘。 参数 src:输入图像。 ddepth:输出图像的深度(如cv2.CV_8U, cv…...
【理想汽车中科院】基于模仿学习的端到端自动驾驶数据缩放规律
论文: https://arxiv.org/pdf/2412.02689 项目: https://github.com/ucaszyp/Driving-Scaling-Law 0. 摘要 端到端自动驾驶范式因其可扩展性而最近吸引了大量关注。然而,现有方法受到现实世界数据规模有限的制约,这阻碍了对端到端自动驾驶相关扩展规律…...
重卡补能新未来:光储充换一体开启高效之路
《重卡补能新未来:光储充换一体开启高效之路》 一、光储充换一体重卡补能模式的兴起 重卡运输行业在电动化进程加速下迎来变革,光储超充快换一体化补能站成为新趋势。 随着国家 “双碳” 战略的持续推进,新能源汽车市场蓬勃发展,…...
Mybatis Plus 3.0 快速入门
1、简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 2、创建并初始化数据库 2.1、创建数据库 mybatis_plus 2.2、创建 User 表 其表结构如下: idnameageemail1Jone18test1@baomidou.com2Jack…...
ABAP:MB51字段增强
MB51所对应的程序:RM07DOCS 1.定义增强字段:RM07DOCS_GENERATED中定义 2.取值:RM07DOCS中detail_list中加取值逻辑 也有对ITAB取值做调整的,但是要写很多处,直接这里取值就很简单。 3.展示字段:RM07DOCS中…...
nVisual 定制化APP打包流程
一、下载打包软件 HBuilder X 下载地址:https://dcloud.io/hbuilderx.html 安装:此软件为绿色软件,解压即可使用。进入目录,双击exe启动。 此软件需要注册,打开时会提供跳转链接,通过邮箱注册账号。 注册成功后&#…...
k8s的节点亲和性NodeAffinity
关键词: ① requiredDuringSchedulingIgnoredDuringExecution:表示强匹配,必须要满足 ② preferredDuringSchedulingIgnoredDuringExecution:表示弱匹配,尽可能满足,但不保证 示例: apiVersion: v1 kind:…...
比特币国家与企业机构“战略储备”潮起
100 万枚 BTC 的战略储备资产,是一个什么概念? 据世界黄金协会统计数据显示,截至 2024 年第三季度,美联储黄金储备总量达 8133.46 吨(约合 5300 亿美元),稳居全球首位。而 100 万枚 BTC 当前市…...
Vue生命周期钩子函数:深入解析与实践
作为高级Vue前端开发人员,对Vue组件的生命周期钩子函数有着深刻的理解是至关重要的。生命周期钩子函数是指在Vue组件的创建、更新、销毁等过程中,Vue自动调用的一系列方法。通过这些钩子函数,我们可以在组件的不同生命周期阶段执行特定的操作…...
mysql、postgresql、oceanbase调优
一、mysql 1、my.cnf [mysqld_safe] log-error=/data/mysql/log/mysql.log pid-file=/data/mysql/run/mysqld.pid[client] socket=/data/mysql/run/mysql.sock default-character-set=utf8[mysqld] basedir=/usr/local/mysql tmpdir=/data/mysql/tmp datadir=/data/mysql/dat…...
【Flux.jl】 卷积神经网络
Flux.jl 是包含卷积神经网络的, 但是官方API文件中没有给出一个完整的程序框架, 只是对所需神经元给了局部解释, 此外对 model-zoo 模型动物园中的案例没有及时跟着 Flux.jl 的版本更新, 也无法运行出来结果。 因此本文搭建了一个完整可训练的卷积神经网络。 Conv 卷积算子…...
数字证书管理工具 openssl keytool
OPENSSL 命令 openssl command [ command_opts ] [ command_args ] 常用command: version 用于查看版本信息 enc 用于加解密 ciphers 列出加密套件 genrsa 用于生成私钥 -des|-des3|-idea:用来加密私钥文件的三种对称加密算法。 rsa …...
notify和notifyAll
notify和notifyAll 简单来说: notify():只唤醒一个等待的线程,如果有多个线程在等待,那么被唤醒的线程是随机选择的。 notifyAll():唤醒在该对象监视器上等待的所有线程,但是这些被唤醒的线程仍然需要竞争…...
删除MySQL的多余实例步骤
删除 MySQL 的多余实例通常意味着我们希望卸载或停止某个 MySQL 服务器实例,并从系统中完全移除它。这通常涉及到几个步骤,包括但不限于停止服务、删除数据目录、卸载软件(如果适用)等。 1.基于 Linux 的系统上删除 MySQL 的多余…...
LDR6500应用:C转DP线材双向投屏开启全新体验
在当今这个科技日新月异、蓬勃发展的时代,高清视频传输以及显示技术已经深深融入到我们日常生活与工作的方方面面,其重要性不言而喻。不管是在商务场合的会议演示,还是教育领域的娱乐享受,以及充满激情的游戏竞技领域,…...
商业化大前端在性能优化领域的探索与实践
导读:在业务飞速发展的过程中,用户体验是必不可少的一个环节,而页面性能是直接影响用户体验的重要因素。当页面加载时间过长、交互操作不流畅时,意味着业务可能会出现转化率降低、用户流失等业务问题。在过去一年,为了…...
FinClip | 2024年11月产品大事记
FinClip 的使命是使您(业务专家和开发人员)能够通过小程序解决关键业务流程挑战,并完成数字化转型的相关操作。不妨让我们看看在11月的产品与市场发布亮点,看看是否有助于您实现目标。 产品方面的相关动向👇…...
EasyPlayer.js在同一个http的mp4视频流地址,浏览器可以播放,播放器中却播放不了
流媒体技术正站在数字化时代的前沿,随着互联网技术的不断进步和市场需求的日益增长,其发展前景显得尤为广阔。随着全球数字化转型的不断深入,流媒体行业将迎来更加繁荣的未来,成为信息传播和娱乐消费的主要渠道。 用户遇到在同一个…...
探索云原生安全解决方案的未来
我们是否充分意识到云端所面临的网络安全威胁? 在当今互联互通的世界中,维护安全的环境至关重要。云的出现扩大了潜在威胁的范围,因为它催生了机器身份(称为非人类身份 (NHI))及其秘密。随着组织越来越多地转向云原生…...
发愿和许愿的区别是什么?
在许多宗教和文化中,发愿和许愿都是人们表达内心愿望、祈求神灵保佑的重要方式。尽管这两个词在日常生活中经常被交替使用,但它们在含义和实践上存在一些重要的区别。本文就来详细说说发愿和许愿的区别,并提供相关的背景信息和建议。 1. 定义…...
【IntelliJ IDEA 集成工具】TalkX - AI编程助手
前言 在数字化时代,技术的迅猛发展给软件开发者带来了更多的挑战和机遇。为了提高技术开发群体在繁多项目中的编码效率和质量,他们需要一个强大而专业的工具来辅助开发过程,而正是为了满足这一需求,TalkX 应运而生。 一、概述 1…...
【故障处理--修改CI流水线】
背景:研发同事反映CI流水线卡顿严重,判断是移动云镜像仓库的带宽太小,故在公有云搭建一个harbor仓库,这就意味着CI流水线有些配置需要改动 1、CI流水线的介绍 helm-chart/pcas-appstore-hy存放的是chart包需要的文件 Dockerfile…...
Android 使用 Gson + OkHttp 实现 API 的常规使用(个人心得)
学习笔记 一、依赖和权限的添加 网络权限: 在 Android 中进行网络请求时,必须声明权限,确保应用具有访问互联网的能力。 <uses-permission android:name="android.permission.INTERNET"/> 依赖项: 确保在 build.gradle 中添加以下依赖: dependencies …...
MR30分布式 IO 模块:硅晶行业电池片导片机的智能 “心脏”
硅晶产业作为全球能源和电子领域的基石,其生产规模庞大且工艺复杂。从硅料的提纯、拉晶,到硅片的切割、电池片的制造,每一个环节都要求高精度与高稳定性。在电池片生产环节,导片机承担着硅片传输与定位的重要任务,其运…...
mysql高级篇 | 尚硅谷 | 第2章_数据库和文件系统的关系
二、数据库和文件系统的关系 文章目录 二、数据库和文件系统的关系1、查看默认数据库2、 数据库在文件系统中的表示3、表在文件系统中的表示①InnoDB存储引擎模式②表中数据和索引②MyISAM存储引擎模式 4、小结 1、查看默认数据库 查看一下在我的计算机上当前有哪些数据库&…...
React 生命周期
React 生命周期可以分为三个主要阶段:挂载(Mounting)、更新(Updating)和卸载(Unmounting) 挂载(Mounting) 当组件实例被创建并插入到 DOM 中时,会依次调用以…...
OpenCV--图像查找
OpenCV--图像查找 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像查找--特征匹配的应用,通过特征匹配和单应性矩阵 单应性变换:描述物体在世界坐标系(原图)和像素坐标系(对比图&#x…...
数据保护策略:如何保障重要信息的安全
一、什么是数据安全? 数据安全是保护数字信息免遭盗窃、未经授权的访问和恶意修改的过程。这是一个持续的过程,负责监督信息的收集、存储和传输。 机密性:保护数据免遭未授权方访问。 完整性:保护数据免遭未经授权的修改、损坏…...
AI生成图表化:深入探索Mermaid
引言 在使用生成式AI时,只要你提出让AI帮你生成mermaid图,AI的生成就会出现丰富的图形! 在现代文档编写中,图表的使用不仅能增强文档的可读性,还能更直观地表达复杂的概念和流程。Mermaid 作为一款开源的图表绘制工具…...
模型训练中梯度累积步数(gradient_accumulation_steps)的作用
模型训练中梯度累积步数(gradient_accumulation_steps)的作用 flyfish 在使用训练大模型时,TrainingArguments有一个参数梯度累积步数(gradient_accumulation_steps) from transformers import TrainingArguments梯…...
jenkins安装(jdk1.8已安装)
1. 下载对应jenkins版本 https://mirrors.jenkins.io/war/ 2. 上传至服务器目录并启动 mkdir -p /root/jenkins cd /root/jenkins 上传文件 启动:nohup java -jar jenkins.war --httpPort9090 &> jenkins.log & 访问:http://ip:9090 选…...
爬虫实战:获取1688接口数据全攻略
引言 在电商领域,数据的重要性不言而喻。1688作为中国领先的B2B电商平台,提供了海量的商品数据。通过爬虫技术获取这些数据,可以帮助企业进行市场分析、价格监控和供应链管理。本文将详细介绍如何使用Python爬虫技术合法合规地获取1688接口数…...
基于Mybatis,MybatisPlus实现数据库查询分页功能
基于Mybatis,MybatisPlus实现数据库查询分页功能 目录 基于Mybatis,MybatisPlus实现数据库查询分页功能使用Mybatis插件实现分页数据库准备分页插件配置和使用常用数据: 使用MybatisPlus插件实现分页数据库准备分页插件配置和使用自定义分页查…...
【C++】求第二大的数详细解析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯输入描述💯解题思路分析1. 题目核心要求2. 代码实现与解析3. 核心逻辑逐步解析定义并初始化变量遍历并处理输入数据更新最大值与次大值输…...
Ubuntu18安装后基本配置操作
1. 关掉自动更新 不关掉自动更新,会将你的ubuntu系统更新到更高版本,一些配置就不能用了,所以要关掉自动更新。在“软件和更新”中将“自动检查更新”设置为从不。 2. ubuntu换国内源 参考链接换源 按照这个换源这个换源好使 ,…...
【Azure 架构师学习笔记】- Azure Function (1) --环境搭建和背景介绍
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Function 】系列。 前言 随着无服务计算的兴起和大数据环境中的数据集成需求, 需要使用某些轻量级的服务,来实现一些简单操作。因此Azure Function就成了微软云上的一个必不可少的组成部分。 …...
【ubuntu】将Chroma配置为LINUX服务
Chroma是一个轻量级向量数据库。既然是数据库,那么我希望它是能够长时间运行。最直接的方式是配置为service服务。 可惜官方没有去提供配置为服务的办法,而鄙人对docker又不是特别感冒。所以自己研究了下chroma配置为服务的方式。 系统:ubu…...
Linux24.04 安装企业微信
今天工作需要把windows系统换成了linux,但是公司的沟通工具是企业微信。去企业微信官网看了,没有linux版本,只能想办法解决了,不然再换回去就太坑了。 方案 1、使用docker容器,2、使用deepin-wine 本人对docker不太熟…...
路由引入问题(双点双向路由回馈问题)
简介 总所周知,路由引入import又称路由重分发redistribute,为了解决不同路由协议进程间路由信息不互通而使用的技术,由于不同路由协议的算法、机制、开销等因素的差异,它们之间无法直接交换路由信息。因此,路由引入技…...
Redis 实现分布式锁
单实例条件下的分布式锁 -- 加锁操作 -- KEYS[1]: 锁的键(lock_key) -- ARGV[1]: 当前客户端的标识(client_id) -- ARGV[2]: 锁的过期时间(毫秒)if (redis.call(EXISTS, KEYS[1]) 0) then-- 如果锁不存在…...
Redis客户端(Jedis、RedisTemplate、Redisson)
1. 简介 Redis作为一个当下很火热的非关系型数据库,Java从业人员基本都离不开对Redis的使用。在Java程序中该数据库,需要借助于市面上的开源客户端,如Jedis、Spring Data Redis、Redisson,它们可以作为操作Redis非关系型数据库的桥…...
虚幻引擎内各个组件的关系
1. GameMode: 关系: GameMode 是游戏规则的制定者和管理者,GameState 则是游戏状态的记录者和同步者。GameMode 通常负责创建和初始化 GameState。 交互: GameMode 可以直接访问和修改 GameState 的属性,例如更新游戏分数、切换游戏阶段等。GameState 的变化会通过 GameMode …...
Python Flask Web框架快速入门
Flask 入门Demo Flask 开发环境搭建,执行如下指令: pip install flask# 第一节: Flask 快速入门from flask import Flask app Flask(__name__)app.route(/flask) def hello_flask():return Hello Flaskapp.run()核心代码剖析: 从flask包导…...
【java学习笔记】Set接口实现类-LinkedHashSet
一、LinkedHashSet的全面说明 (就是把数组不同位置的链表当成一个节点然后相连)...
阿里云ACP云计算模拟试题(附答案解析)
1、将基础设施作为服务的云计算服务类型是_____服务。 A.laas B.Paas C.SaaS D.Daas 答案:A 解析:基础设施即服务有时缩写为 IaaS,包含云 IT 的基本构建块,通常提供对联网功能、计算机(虚拟或专用硬件&#x…...
java 缓存篇2
缓存的部署方式 单机主从哨兵集群 特性主从(Master-Slave)哨兵(Sentinel)集群(Cluster)数据分片不支持不支持支持,基于 slot 进行水平分片高可用性部分支持(手动故障转移ÿ…...