Day 40 Web容器-Tomcat

Tomcat

一:Tomcat简介

1.简介

image-20230518232204478

​ Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目

​ Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器

​ Tomcat是WEB容器/WEB中间件

​ Tomcat官网:https://tomcat.apache.org/

2.端口

​ Tomcat自身服务的端口:8005

​ Tomcat和其他应用通信的端口:8009

​ Tomcat给客户端浏览器访问页面使用的端口:8080

3.运行环境

​ JDK是 Java 语言的软件开发工具包

​ JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具

​ Tomcat运行需要JDK,用于运行war包的代码(jar包只需要jdk就能跑)

4.Web容器

web容器/web中间件

Python语言开发的项目所使用的web中间件uWSGI

Php语言开发的项目所使用的web中间件php,php-fpm

Java语言开发的项目所使用的web中间件Tomcat,Jboss,weblogic

Java项目有两种包分别是jar包和war包

jar包可以直接在jdk环境下运行,使用命令java -jar jar包名

jar包环境:linux + nginx/apache + jdk + mysql (LN/AJM)

war包则需要在Tomcat+jdk环境下运行

war包环境:linux + nginx/apache + jdk + tomcat + mysql (LN/AJTM)

此外前端项目(H5)和后端项目(Java)在发布使用之前都需要进行构建

前端项目使用Vue进行构建

开发人员构建(Windows环境):idea + node.js插件(Vue)

运维人员构建(Linux环境):node.js(Vue)的npm命令

后端项目使用Maven进行构建

开发人员构建(Windows环境): idea+jdk+ tomcat+ maven

运维人员构建:(Linux环境): jdk + maven 使用mvn命令

二:Tomcat安装

1.上传

​ 官网里面扒拉,略

2.安装

Tomcat需要Java环境

此处选择 Tomcat9 版本和 jdk8 版本

Tomcat下载:https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.89/bin/apache-tomcat-9.0.89.tar.gz

jdk下载:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

[root@xingdiancloud ~]# tar xf apache-tomcat-7.0.34.tar.gz -C /usr/local/
[root@xingdiancloud ~]# tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/
[root@xingdiancloud ~]# ln -s /usr/local/jdk1.8.0_91 /usr/local/java
[root@xingdiancloud ~]# ln -s /usr/local/apache-tomcat-7.0.34 /usr/local/tomcat
3.环境变量
[root@xingdiancloud ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
[root@xingdiancloud ~]# source /etc/profile
4.检测
[root@xingdiancloud ~]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
5.启动Tomcat

在启动tomcat之前,要去修改一下 /usr/local/tomcat/conf/server.xml 文件,打开8009端口(默认关闭)

删除亮色蓝框里的两个注释

在这里插入图片描述

启动tomcat

[root@xingdiancloud ~]# /usr/local/tomcat/bin/startup.sh
6.管理方式
启动tomcat的方法:1.直接执行/usr/local/tomcat/bin/startup.sh2.直接执行/usr/local/tomcat/bin/catalina.sh start
关闭tomcat的方法:1.直接执行/usr/local/tomcat/bin/shutdown.sh2.直接执行/usr/local/tomcat/bin/catalina.sh stop在/usr/bin/目录下创建一个脚本tomcat来对其进行便捷管理,可以在任何目录下调用这个脚本方案一:通过tomcat start 或 tomcat stop 来打开或关闭tomcatcat /usr/bin/tomcat#!/usr/bin/bash/usr/local/tomcat/bin/catalina.sh $1方案二:通过tomcat start,tomcat stop和tomcat restart 来打开,关闭或重启tomcatcat /usr/bin/tomcat#!/usr/bin/bashcase $1 instart)/usr/local/tomcat/bin/startup.sh;;stop)/usr/local/tomcat/bin/shutdown.sh ;;restart)/usr/local/tomcat/bin/shutdown.shsleep 3/usr/local/tomcat/bin/startup.sh;;esac使用脚本别忘了给脚本执行权限:chmod a+x /usr/bin/tomcat 
7.检测
[root@xingdiancloud ~]# netstat -tnlp |grep java
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                   		LISTEN      6191/java           
tcp        0      0 :::8009                     :::*                        LISTEN      6191/java           
tcp        0      0 :::8080                     :::*                        LISTEN      6191/java     
8.测试

​ IP+端口访问

9.Tomcat目录

Tomcat主目录介绍

[root@java-tomcat1 tomcat]# tree -L 1
.
├── bin     #存放tomcat的管理脚本(二进制文件)
├── BUILDING.txt
├── conf    #tomcat的配置文件(server.xml)
├── CONTRIBUTING.md
├── lib      #web应用调用的jar包存放路径
├── LICENSE
├── logs     #tomcat日志存放目录
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp     #存放临时文件
├── webapps  #默认网站发布目录
└── work     #存放编译生产的.java与.class文件

Webapps目录介绍

[root@java-tomcat1 webapps]# tree -L 1
.
├── docs  #tomcat的帮助文档
├── examples  #web应用实例
├── host-manager  #主机管理
├── manager    #管理
└── ROOT    #默认站点根目录

Tomcat配置文件目录介

[root@java-tomcat1 conf]# tree -L 1
.
├── Catalina
├── catalina.policy
├── catalina.properties
├── context.xml
├── logging.properties
├── logs
├── server.xml           # tomcat 主配置文件
├── server.xml.bak
├── server.xml.bak2
├── tomcat-users.xml    # tomcat 管理用户配置文件
├── tomcat-users.xsd
└── web.xml

三:部署JSPGOU项目

1.环境准备

​ Tomcat服务器正常运行Tomcat

​ 数据库服务器部署

2.框架

单机架构

集群架构:

image-20230518234046405
3.数据库部署

​ 安装:略

​ 创建数据库:

create database jspgou default charset=utf8;

​ 授权:略

​ 上传数据库文件:略

​ 修改配置(仅限jspgou项目):

[root@xingdiancloud ~]# vim /etc/my.cnf
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
explicit_defaults_for_timestamp=1

​ 参数解释:

STRICT_TRANS_TABLES:在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制
NO_ZERO_IN_DATE:在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。ERROR_FOR_DIVISION_BY_ZERO:在严格模式,在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误(否则为警告)。如果未给出该模式,被零除时MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作结果为NULLNO_AUTO_CREATE_USER:防止GRANT自动创建新用户,除非还指定了密码。NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

​ 数据库导入:略(数据库文件来自4.1解压的sql文件)

[root@xingdiancloud ~]# mysql -u root -p123 -D jspgou < jspgou.sql
4.项目上线(Tomcat)

​ 解压项目:略

​ 使用scp将数据库文件远程拷贝到数据库

​ 将项目放到指定目录下;网站发布目录

[root@xingdiancloud ~]# cp -r ROOT/ /usr/usr/local/tomcat/webapps/ 

​ 更改数据库连接

[root@xingdiancloud ~]# vim /usr/local/tomcat/webapps/ROOT\WEB-INF\config\jdbc.properties
jdbc.url=jdbc:mysql://数据库服务器IP:3306/创建好的数据库名?characterEncoding=UTF-8
jdbc.username=用户名
jdbc.password=密码
5.访问测试
系统管理后台登录:http://localhost:8080/jeeadmin/jspgou/index.do
用户名:admin
密  码:123456
6.Tomcat启动慢解决方案
[root@xingdiancloud ~]# yum install rng-tools
[root@xingdiancloud ~]# systemctl start rngd

四:Tomcat扩展

1.Tomcat配置文件

​ server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;

​ web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;

​ tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息;

​ catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力;

​ catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;

​ logging.properties: Tomcat6通过自己内部实现的JAVA日志记录器来记录操作相关的日志;

​ context.xml:所有host的默认配置信息;

1、Server组件:
<Server port=”8005” shutdown=”SHUTDOWN”>
port: 接收shutdown指令的端口,默认仅允许通过本机访问,默认为8005;
shutdown:发往此Server用于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;
2、Service组件:
Service主要用于关联一个引擎和与此引擎相关的连接器,每个连接器通过一个特定的端口和协议接收入站请求交将其转发至关联的引擎进行处理。因此,Service要包含一个引擎、一个或多个连接器。
如上面示例中的定义:
<Service name=”Catalina”>
这定义了一个名为Catalina的Service,此名字也会在产生相关的日志信息时记录在日志文件当中。
Service相关的属性:
className: 用于实现service的类名,一般都是org.apache.catalina.core.StandardService。
name:此服务的名称,默认为Catalina;
3、Connector组件:
进入Tomcat的请求可以根据Tomcat的工作模式分为如下两类:
Tomcat作为应用程序服务器:请求来自于前端的web服务器,这可能是Apache, IIS, Nginx等;
Tomcat作为独立服务器:请求来自于web浏览器;
Tomcat应该考虑工作情形并为相应情形下的请求分别定义好需要的连接器才能正确接收来自于客户端的请求。一个引擎可以有一个或多个连接器,以适应多种请求方式。
定义连接器可以使用多种属性,有些属性也只适用于某特定的连接器类型。一般说来,常见于server.xml中的连接器类型通常有4种:
1) HTTP连接器 2) SSL连接器 3) AJP 1.3连接器 4) proxy连接器
如上面示例server.xml中定义的HTTP连接器:
<Connector port=”8080″ protocol=”HTTP/1.1″
maxThreads=”150″ connectionTimeout=”20000″
redirectPort=”8443″/>
4、Engine组件:
Engine是Servlet处理器的一个实例,即servlet引擎,默认为定义在server.xml中的Catalina。Engine需要defaultHost属性来为其定义一个接收所有发往非明确定义虚拟主机的请求的host组件。如前面示例中定义的:
<Engine name=”Catalina” defaultHost=”localhost”>
5、Host组件:
位于Engine容器中用于接收请求并进行相应处理的主机或虚拟主机,如前面示例中的定义:
<Host name=”localhost” appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
</Host>
autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true;
unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true;
2.Tomcat管理
1.编辑一个文件tomcat
[root@tomcat ~]# vim tomcat
#!/bin/bash
bash /usr/local/tomcat/bin/catalina.sh $12.给tomcat文件加执行权限[root@tomcat ~]# chmod a+x tomcat3.把tomcat放到/usr/bin目录下[root@tomcat ~]# mv tomcat /usr/bin4.使用[root@tomcat ~]# tomcat stop  停止
[root@tomcat ~]# tomcat start  启动

五:Tomcat多实例

1.简介

​ 多实例运行不同的应用(类似虚拟主机)

​ 多实例运行相同的应用(实现负载均衡)

2.多实例部署

在一个工作目录下创建多实例目录

instance1: mdkir -pv /usr/local/tomcat/instance1/{conf,logs,temp,work}       8081     8091
instance2: mdkir -pv /usr/local/tomcat/instance2/{conf,logs,temp,work}       8082     8092
instance3: mdkir -pv /usr/local/tomcat/instance3/{conf,logs,temp,work}       8083     8093

创建多实例目录,根据实例多少确定

分别创建目录instance1 instance2 instance3,拷贝原来的conf,log,temp,work到3个目录下

[root@www ~]# tree -d -L 2 /usr/local/tomcat/
/usr/local/tomcat/
├── bin
├── instance1
│   ├── conf
│   ├── logs
│   ├── temp
│   └── work
├── instance2
│   ├── conf
│   ├── logs
│   ├── temp
│   └── work
├── instance3
│   ├── conf
│   ├── logs
│   ├── temp
│   └── work
└── lib

拷贝原来单实例的webapps到/下(/usr/local/tomcat/webapps) 路径可以自定义,但要和配置文件

[root@www ~]#  cp -r /usr/local/tomcat/webapps  /

配置实例server.xml

[root@www ~]# vim /usr/local/tomcat/instance1/conf/server.xml
<Server port="8091" shutdown="SHUTDOWN">  //修改8005
<Connector port="8081" protocol="HTTP/1.1"   //修改8080connectionTimeout="20000"redirectPort="8443" />删除8009的配置
<Host name="localhost"  appBase="/webapps"   //修改网站基准目录unpackWARs="true" autoDeploy="true">
......

脚本内容这个脚本在每个实例中都要有 启动tomcat(实例)

[root@www ~]# vim /usr/local/tomcat/instance1/ins1.sh#!/bin/bash
. /etc/init.d/functions
export CATALINA_BASE="/usr/local/tomcat/instance1"
export CATALINA_HOME="/usr/local/tomcat"
case $1 in
start)$CATALINA_HOME/bin/startup.sh;;
stop)$CATALINA_HOME/bin/shutdown.sh;;
restart)$CATALINA_HOME/bin/shutdown.shsleep 5$CATALINA_HOME/bin/startup.sh;;
esac

启动测试

[root@www ~]# /usr/local/tomcat/instance1/ins1.sh start
[root@www ~]# /usr/local/tomcat/instance2/ins2.sh start
[root@www ~]# /usr/local/tomcat/instance3/ins3.sh start、[root@www ~]# ss -tnlp |grep :80
LISTEN  0  100  :::8081                :::*  users:(("java",pid=7288,fd=48))
LISTEN  0  100  :::8082                :::*  users:(("java",pid=7468,fd=48))
LISTEN  0  100  :::8083                :::*  users:(("java",pid=7496,fd=48))
LISTEN  0  1    ::ffff:127.0.0.1:8091  :::*  users:(("java",pid=7288,fd=61))
LISTEN  0  1    ::ffff:127.0.0.1:8092  :::*  users:(("java",pid=7468,fd=61))
LISTEN  0  1    ::ffff:127.0.0.1:8093  :::*  users:(("java",pid=7496,fd=61))

访问测试

image-20230519000724259

六:Tomcat负载均衡

1.Nginx配置
[root@www ~]# vim /usr/local/nginx/conf/nginx.conf
这个地方是 地址池,这里包含了后端服务器的地址和端口,这里的名字随便启。
http {upstream tomcat_pool {#ip_hash;                                                  最大失败次数  失败超时时间  server 192.168.122.105:8081 weight=1 max_fails=2 fail_timeout=2;server 192.168.122.105:8082 weight=1 max_fails=2 fail_timeout=2;server 192.168.122.105:8083 weight=1 max_fails=2 fail_timeout=2;server 192.168.122.105:8084 weight=1 max_fails=2 fail_timeout=2;}
负载均衡的算法: RR round robin session  ip_hash 是常用的负载均衡的算法server {location / {proxy_pass http://tomcat_pool;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;}} 		     		}

七:Tomcat配置ssl

​ 部署tomcat服务,项目做到用https访问,使用nginx去做,访问任意一个子网站,都是https

​ 略

八:Tomcat扩展

1.日志
[root@java-tomcat1 ~]# cd /data/application/tomcat/conf/
[root@java-tomcat1 conf]# vim server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/www/logs"prefix="jenkins-" suffix="-access_log"pattern="%{X-Real-IP}i - %v %t &quot;%r&quot; - %s %b %T &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot; %a &quot;-&quot; &quot;-&quot;" />

日志格式参数文件:https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Access_Logging

2. JVM 参数优化
[root@java-tomcat1 conf]# cd ../bin/
[root@java-tomcat1 bin]# cp catalina.sh catalina.sh.bak
[root@java-tomcat1 bin]# vim catalina.sh
JAVA_OPTS="$JAVA_OPTS -Xms4096m -Xmx4096m -XX:PermSize=1024m -XX:MaxPermSize=2048m"

设置初始堆、非堆内存大小以及年轻代

-Xms50m -Xmx200m -XX:PermSize=30m -XX:MaxPermSize=60m  
-Xloggc:eclipse_gc.log (设置垃圾回收日志打印的文件,文件名称可以自定义) 
-XX:+PrintGCTimeStamps (打印垃圾回收时间信息时的时间格式) 
-XX:+PrintGCDetails (打印垃圾回收详情) 
-XX:PermSize:设置永久代(perm gen)初始值。默认值为物理内存的1/64。
-XX:MaxPermSize:设置持久代最大值。物理内存的1/4。
-Xms:初始堆大小,默认为物理内存的1/64(<1GB)
-Xmx:最大堆大小
-Xmn:新生代的内存空间大小
3.gc日志

​ 阅读GC日志,我们可以了解Java虚拟机内存分配与回收策略(开发使用)

# vim catalina.sh
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/logs/gc-%t.log"

image-20230519001618185

九:项目实战

1.jar包项目

shell
-Xms50m -Xmx200m -XX:PermSize=30m -XX:MaxPermSize=60m
-Xloggc:eclipse_gc.log (设置垃圾回收日志打印的文件,文件名称可以自定义)
-XX:+PrintGCTimeStamps (打印垃圾回收时间信息时的时间格式)
-XX:+PrintGCDetails (打印垃圾回收详情)
-XX:PermSize:设置永久代(perm gen)初始值。默认值为物理内存的1/64。
-XX:MaxPermSize:设置持久代最大值。物理内存的1/4。
-Xms:初始堆大小,默认为物理内存的1/64(<1GB)
-Xmx:最大堆大小
-Xmn:新生代的内存空间大小


#### 3.gc日志​		阅读GC日志,我们可以了解Java虚拟机内存分配与回收策略(开发使用)```shell
# vim catalina.sh
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/logs/gc-%t.log"

[外链图片转存中…(img-rS1hHDPU-1716815257196)]

九:项目实战

1.jar包项目
2.war包项目

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第108题将有序数组转换为二叉搜索树

题目&#xff1a; 题解&#xff1a; func sortedArrayToBST(nums []int) *TreeNode {rand.Seed(time.Now().UnixNano())return helper(nums, 0, len(nums) - 1) }func helper(nums []int, left, right int) *TreeNode {if left > right {return nil}// 选择任意一个中间位置…

诚心分享!主食冻干横向对比:希喂、爱立方、K9等谁最值得入手?

主食冻干到底有必要喂吗&#xff1f;七年铲龄铲屎官告诉你&#xff0c;是真的很有必要喂&#xff01; 这些年随着宠物经济的发展、科学养宠的普及&#xff0c;现在养猫不仅局限在让猫吃饱就行&#xff0c;更多人开始关注到猫的饮食健康。大量的实际喂养案例证明了&#xff0c;传…

冯喜运:5.27黄金短线看震荡,今日黄金原油走势分析

【黄金消息面分析】&#xff1a;黄金作为传统的避险资产&#xff0c;在经济不确定性中扮演着至关重要的角色。近期&#xff0c;国际黄金价格经历了显著的波动。从5月9日的低点2325.19美元/盎司反弹至2340美元/盎司以上&#xff0c;尽管金价曾一度触及2449.89美元/盎司的历史高点…

Baxter机器人摄像头打不开的一个可能的解决办法

操作过程 1.连上机器人 cd ros_ws/ ./baxter.sh2.查看摄像头&#xff08;最多开两个&#xff09; rosrun baxter_tools camera_control.py -l 3.打开指定的摄像头 rosrun baxter_tools camera_control.py -o left_hand_camera -r 1280x800 另&#xff1a;关闭的话 rosrun…

南京“十元手冲咖啡” :流量怎么砸中你?

三包速溶咖啡、一个塑料热水壶&#xff0c;却意外打造出一款爆品。 南京“十元手冲咖啡”突然爆火&#xff0c;起初靠的是出人意料&#xff0c;你以为她要从罐子里擓粉了&#xff0c;她掏出来三条雀巢速溶&#xff1b;你以为她要用机器打水了&#xff0c;她拿出来一个上世纪的…

Docker学习(4):部署web项目

一、部署vue项目 在home目录下创建项目目录 将打包好的vue项目放入该目录下&#xff0c;dist是打包好的vue项目 在项目目录下&#xff0c;编辑default.conf 内容如下&#xff1a; server {listen 80;server_name localhost; # 修改为docker服务宿主机的iplocation / {r…

服务器端口号,如何避免与公共端口冲突

首先&#xff0c;我们需要明确什么是服务器端口号。服务器端口号是计算机操作系统分配给网络应用程序的一个数字标识&#xff0c;用于区分不同的网络服务。每个网络服务都需要一个唯一的端口号来进行标识&#xff0c;以便在通信过程中能够准确找到对应的服务。 为了避免与公共端…

【微积分】Grant Sanderson

梯度&#xff1a;将各个偏导打包 定义&#xff1a;direction of steepest ascent 梯度向量的长度&#xff1a;最速上升方向的陡峭程度 方向导数&#xff1a;偏导的一种拓展 【托马斯微积分学习日记】13.1-线积分_哔哩哔哩_bilibili 概述 16.1line integrals of scalar funct…

2000.1-2022.06.17中国经济政策不确定性指数日度数据

2000.1-2022.06.17中国经济政策不确定性指数数据&#xff08;日度&#xff09; 1、时间&#xff1a;2001.1.1-2022.06.17 2、指标&#xff1a;CNEPU&#xff08;经济政策不确定性指数&#xff09; 3、来源&#xff1a;China Economic Policy Uncertainty Index 4、用途&…

牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4af96fa010c44638a7e112abf65f7237 思路 贪心二分 所谓贪心&#xff0c;就是往死里贪&#xff0c;所以对于最大上升子序列&#xff0c;结尾元素越小&#xff0c;越有利于后面接上其他的数&#xff0c;也就可能变…

不用从头训练,通过知识融合创建强大的统一模型

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的开发和训练是一个复杂且成本高昂的过程。数据需求是一个主要问题&#xff0c;因为训练这些模型需要大量的标注数据来保证其准确性和泛化能力&#xff1b;计算资源也是一个…

AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月27日预测第3弹

今天继续基于8883的大底&#xff0c;使用尽可能少的条件进行缩号&#xff0c;同时&#xff0c;今天同样准备两套方案&#xff0c;一套是我自己的条件进行缩号&#xff0c;另外一套是8883的大底结合某位彩友的2码不定位奖号预测二次缩水来杀号。好了&#xff0c;直接上结果吧~ …

P1115 最长子段和

题目描述 给出一个长度为 &#x1d45b;n 的序列 &#x1d44e;a&#xff0c;选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个整数&#xff0c;表示序列的长度 &#x1d45b;。 第二行有 &#x1d45b;n 个整数&#xff0c;第 &#x1d456; 个整数表示序列的…

PCL 法向量加权的RANSAC拟合分割平面

目录 一、算法原理1、原理概述2、主要函数二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述

【安装】VMware虚拟机安装windows操作系统,VM的相关操作

目录 引出报错&#xff1a;press any key to boot form cd激活调整显示 在VMware上新建虚拟机&#xff0c;并安装Windows1、新建虚拟机2、装载 ISO 镜像3、安装Windows server 20164、开机初始化 虚拟机操作1、虚拟机基本操作2、虚拟机快照3、虚拟机克隆4、VMware Tools 总结 引…

什么是光栅化?

一、 什么是光栅化? 光栅化作用是将几何数据变换后转换为像素呈现在显示设备上的一个过程。几何数据转换为像素&#xff0c; 本质是坐标变换、几何离散化&#xff0c;如下&#xff1a; 其中包含了坐标变换和几何离散化&#xff1a; 二、光栅化完成了什么 3D中&#xff0c;物…

苍穹外卖--sky-take-out(一)

目录 d1 软件开发流程 项目介绍 产品原型 技术选型 前端环境搭建 后端环境搭建 Git版本控制 数据库环境搭建 nginx反向代理和负载均衡 导入接口文档 Swagger 问题 d2 用户登录 代码实现 MD5密码加密 新增员工 需求分析与设计 代码开发 代码完善&#xff08;Threa…

Spring Boot Interceptor(拦截器使用及原理)

之前的博客中讲解了关于 Spring AOP的思想和原理&#xff0c;而实际开发中Spring Boot对于AOP的思想的具体实现就是Spring Boot Interceptor。在 Spring Boot 应用程序开发中&#xff0c;拦截器&#xff08;Interceptor&#xff09;是一个非常有用的工具。它允许我们在 HTTP 请…

python爬虫学习(2)——requests模块

520那天我向心仪的女孩要微信&#xff1a;“女神&#xff0c;能给我你的微信号吗&#xff1f;” 女神&#xff1a;“给我——爬&#xff01;&#xff01;&#xff01;&#xff01;” 从那天开始&#xff0c;我就决定要学好爬虫&#xff0c;爬到女神微信号&#xff01;&#xff…

RBA认证是什么?申请RBA认证的流程是什么?

RBA认证&#xff0c;全称为Responsible Business Alliance&#xff08;责任商业联盟&#xff09;认证&#xff0c;是一个全球性的企业社会责任&#xff08;CSR&#xff09;倡议&#xff0c;旨在通过推动供应链中的社会和环境责任实践&#xff0c;确保供应链的可持续性。该认证要…