nginx+Tomcat负载均衡群集

article/2025/6/9 17:56:32

目录

一. LVS,HAProxy,Nginx的区别

1. 核心区别

2. 负载均衡算法对比

2. 1 LVS 负载均衡算法

2.2 HAProxy 负载均衡算法

2.3 Nginx 负载均衡算法

2.4 总结

二. 案例分析

1. 案例概述

(1) Tomcat 简介

(2)应用场景

2. 案例环境

3. 案例实施

3. 安装配置Tomcat

4. 测试

5. Tomcat配置相关说明

(1) 主要目录说明

(2) 配置文件说明

6. Tomcat 主配置文件说明

7. Tomcat Server 的组成部分说明

三. 建立 Java的Web站点

1. 在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文件。

2. 在webapp1目录下建立一个 index.jsp 的测试页面。

3. 修改Tomcat的server.xml文件

4. 关闭Tomcat,在重新启动

6. 确认web

四. 案例nginx+Tomcat负载均衡,动静分离群集

1. 案例概述

2. 案例环境

3. 案例实施

4. nginx 服务器配置

5. 配置 nginx.conf

6. 测试

五. 纯命令


 

一. LVS,HAProxy,Nginx的区别

1. 核心区别

维度LVSHAProxyNginx
工作层次四层负载均衡(传输层,基于 IP + 端口)四层 / 七层负载均衡(支持 HTTP/HTTPS 等应用层协议)七层负载均衡(应用层,基于 HTTP/HTTPS 协议)
开发语言C(内核态实现)CC
性能最高(内核级处理,损耗极低)较高(用户态处理,支持复杂逻辑)较高(事件驱动架构,适合高并发)
主要场景高并发、大流量的四层负载场景(如 TCP 服务)四层 / 七层混合负载(如 Web 服务、邮件服务)七层 HTTP/HTTPS 负载、反向代理、静态资源服务
健康检查支持基本状态检查(需配合 keepalived)支持丰富健康检查(如 HTTP 状态码、响应时间)支持 HTTP 层面健康检查
扩展性功能较单一,需配合其他工具实现高可用支持多协议、多场景,扩展性强可通过插件扩展功能(如 Lua 脚本)
配置等级较高(需理解内核机制和复杂配置)中等(配置灵活但语法较复杂)较低(配置简单,社区文档丰富)

2. 负载均衡算法对比

2. 1 LVS 负载均衡算法

LVS 作为四层负载均衡工具,算法基于IP 地址和端口,不解析应用层协议,适合 TCP/UDP 等四层流量。
支持的算法

  • 轮询(Round Robin, RR):依次将请求分配到后端服务器,不考虑服务器负载。
  • 加权轮询(Weighted Round Robin, WRR):根据服务器性能设置权重,权重高的分配更多请求。
  • 最少连接(Least Connections, LC):将请求分配给当前连接数最少的服务器。
  • 加权最少连接(Weighted Least Connections, WLC):结合权重和连接数,优先分配给性能高且连接少的服务器。
  • 源地址哈希(Source Hash, SH):根据客户端 IP 地址哈希值分配,确保同一客户端始终连接到同一服务器(会话保持)。
  • 目标地址哈希(Destination Hash, DH):根据目标 IP 地址哈希值分配,适用于缓存场景。
  • 最短预期延迟(Shortest Expected Delay, SED):计算 “(当前连接数 + 1)/ 权重”,值最小的服务器优先处理请求。
  • 最少队列(Never Queue, NQ):若服务器空闲(连接数为 0),直接分配请求,无需计算。

特点:算法简单高效,适合流量转发,但缺乏七层协议的精细化控制。

2.2 HAProxy 负载均衡算法

HAProxy 支持四层和七层负载均衡,算法可基于 IP / 端口(四层)或 HTTP 请求内容(七层),灵活性更高。
支持的算法

  • 轮询(Round Robin):默认算法,顺序分配请求,支持权重。
  • 加权轮询(Weighted Round Robin, WRR):同 LVS 的 WRR。
  • 最少连接(Least Connections):同 LVS 的 LC,支持权重(Weighted Least Connections, WLC)。
  • 源地址哈希(Source ID):基于客户端 IP 哈希,实现会话保持(四层和七层均支持)。
  • URI 哈希(URI Hash):基于 HTTP 请求的 URI 路径哈希,将相同 URI 的请求分配到同一服务器(适用于缓存场景)。
  • URL 参数哈希(URL Parameter Hash):基于 HTTP 请求的 URL 参数(如?user=123)哈希,实现动态内容的会话保持。
  • 随机(Random):随机分配请求,可结合权重(Weighted Random)。
  • 最快响应(Fastest):将请求分配给响应时间最短的服务器(需监控服务器响应速度)。
  • 一致性哈希(Consistent Hash):通过哈希环实现请求分配,减少服务器增减时的缓存失效问题。

特点:支持七层协议的精细化算法(如 URI/URL 参数哈希),适合需要根据请求内容分配流量的场景(如 Web 服务)。

2.3 Nginx 负载均衡算法

Nginx 是七层负载均衡工具,算法基于HTTP/HTTPS 请求,专注于 Web 场景。
支持的算法

  • 轮询(Round Robin):默认算法,顺序分配请求(七层轮询)。
  • 加权轮询(Weighted Round Robin):同 LVS 的 WRR,支持权重。
  • 最少连接(Least Connections):同 LVS 的 LC,支持权重(Weighted Least Connections)。
  • IP 哈希(IP Hash):基于客户端 IP 地址哈希,实现会话保持(类似 LVS 的 SH)。
  • 通用哈希(Generic Hash):可自定义哈希键(如 HTTP 头部、请求参数等),灵活性较高。
  • ** least_time(Nginx Plus 特性)**:将请求分配给响应时间最短且连接数最少的服务器(需 Nginx 商业版支持)。

特点:算法聚焦 HTTP 场景,配置简单,适合中小型 Web 服务,但四层负载能力较弱。

2.4 总结

  • LVS:四层性能王者,适合基础设施层的流量转发。
  • HAProxy:四层 / 七层全能型选手,适合需要灵活路由和复杂健康检查的场景。
  • Nginx:七层 Web 场景首选,轻量高效,适合反向代理和静态资源处理。

 

二. 案例分析

1. 案例概述

京北点指科技有限公司发布V3版移联建站管理系统,该项目为Java 语言开发的Web 站点。目前,IBM 的 WebSphere 及 0racle 的 WebLogic 占据了市面上 Java 语言 Web 站点的 大部分份额。这两种软件以其无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司 的 Web 场景中,但是其高昂的价格也使得小型互联网公司对此望而却步。
Tomcat 自 5.x版本以来,其性能上已经得到了大幅的提升,再加上其开放性的框架和 可二次开发等特性,已经完全可以用在访问量不是很大的生产环境下。 目前,大多数用于 JSP技术开发的电子商务网站基本应用了 Tomcat,而且 Tomcat 的Servlet 和 JSP 这两种 API 也完全可以适用于 V3 版移联建站管理系统。

(1) Tomcat 简介

名称由来:Tomcat 最初是由 Sun 的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun 贡献给 Apache 软件基金会。由于大部分开源项目 0'Rei1ly 都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为 Tomcat(公猫)。而 0’Reilly 出版的介绍 Tomcat 的书籍的封面也被设计成了一个公猫的形象。而 Tomcat 的 Logo 兼吉祥物也被设计成了一只公猫。

其实 Tomcat 在开始研发的时候并不叫这个名字,早期 Tomcat 项目的名字叫Catalina,所以当我们安装完 Tomcat 后会发现安装路径下面有很多和 Catalina 有关的目录和文件,而这些文件通常也是我们使用或者配置Tomcat 的重要文件。

(2)应用场景

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器, 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML页面的 功能,然而由于其处理静态 HTML的能力远不及 Apache 或者Nginx,所以 Tomcat 通常是作 为一个 Servlet 和 JSP 容器,单独运行在后端

2. 案例环境

主机IP地址操作系统应用
tomcat服务器192.168.10.102OpenEulerApache-tomcat

3. 案例实施

关闭防火墙

在安装Tomcat之前必须先安装JDK

JDK 的全称是 Java Development Kit,是 Sun 公司免费提供的 Java 语言的软件开发工具包,其中包含 Java 虚拟机(JVM)。编写好的Java 源程序经过编译可形成Java 字节码,只要安装了 JDK,就可以利用,JM 解释这些字节码文 件,从而保证了Java 的跨平台性。
在平台兼容性方面,JDK 作为解释字节码文件并据此调用操作系统 API 实现对应功Java 虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat 也具有上述特征,默认情况下 JDK 已经安装,所以需要预先下载 Tomcat,本章中所使用的 Tomcat 软件的源码包为 apache-tomcat-9.0.8.tar.gz。

查看JDK是否安装       

java -version

运行 java -version 命令査看 Java 是否安装。如果没有安装需要自行下载安装。 

3. 安装配置Tomcat

解压apache-tomcat-9.0.8.tar.gz包。并移动到/usr/local/tomcat

启动Tomcat

Tomact默认运行在8080端口,运行netstat命令查看8080端口监听的信息

4. 测试

打开浏览器访问测试:http://192.168.10.102:8080

关闭Tomcat,使用、usr/local/tomcat/bin/shutdown.sh

5. Tomcat配置相关说明

(1) 主要目录说明

  • bin/:存放 Windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件。---conf/:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和web.xml.
  • lib/:存放 Tomcat 运行需要的库文件(JARS)
  • logs:存放 Tomcat 执行时的 LOG 文件。
  • webapps:Tomcat 的主要 Web 发布目录(包括应用程序示例)
  • work:存放 JSP 编译后产生的 class 文件。

(2) 配置文件说明

  • catalina.policy:权限控制配置文件。
  • catalina.properties:Tomcat 属性配置文件
  • context.xml:上下文配置文件。
  • logging.properties:日志log 相关配置文件。
  • server.xml:主配置文件。
  • tomcat-users.xml:manager-gui管理用户配置文件(Tomcat安装后提供一个manager-gui 的管理界面,通过配置该文件可以开启访问)。
  • web.xml:Tomcat 的 servlet、servlet-mapping、filter、MIME 等相关配置。

6. Tomcat 主配置文件说明

server.xml 为 Tomcat 的主要配置文件,通过配置该文件,可以修改 Tomcat 的启动端 口、网站目录、虚拟主机、开启 https 等重要功能。

整个 server.xml 由以下结构构成:<Server>、<Service〉、<Connector />、<Engine〉、<Host>、<Context>、</Context〉、</Host〉、</Engine〉、</Service>和</Server>以下是默认安装后 server.xml 文件的部分内容,其中<!---->内的内容是注释信息,黑色斜体部分是需要注意和需要经常更改的部分。

7. Tomcat Server 的组成部分说明

Tomcat Server 由 Server、Service、Connector、Engine、Host 和 Context 组成。

(1)Server
Server 元素代表了整个Catalina 的 servlet 容器。

(2)ServiceService 是这样一个集合:它由一个或者多个 Connector,以及一个 Engine(负责处理 所有 Connector 所获得的客户请求)组成。

(3)Connector
一个 Connector 在某个指定端口上侦听客户请求,并将获得的请求交给 Engine 来处理,从Engine 处获得回应并返回客户。
Tomcat 有两个典型的 Connector,一个直接侦听来自 browser 的 http 请求,个侦听来自其他 WebServer 的请求。
Coyote Http/1.1 Connector 在端口 8080 处侦听来自客户 browser 的 http 请求
Coyote JK2 Connector 在端日8009 处侦听来自其他 WebServer(Apache)的servlet/jsp 代理请求。

(4)Engine
Engine 下可以配置多个虚拟主机 Virtual Host,每个虚拟主机都有一个域名。当 Engine 获得一个请求时,它把该请求匹配到某个 Host 上,然后把该请求交给该 Host来处理。
Engine 有一个默认虚拟主机,当请求无法匹配到任何一个 Host 上的时候,将交给该默认 Host 来处理。

(5)Host
Host 代表一个 Virtual Host,即虚拟主机,每个虚拟主机和某个网络域名 DomainName 相匹配。

每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个 Web App 对应于-个Context,有一个Context path。
当 Host 获得一个请求时,将把该请求匹配到某个 Context 上,然后把该请求交给该 Context 来处理,匹配的方法是“最长匹配”,所以一个 path==""的 Context 将成为该 Host 的默认 Context。
所有无法和其他 Context 的路径名匹配的请求都将最终和该默认 Context 匹配。

(6)Context一个 Context 对应于一个 Web Application,一个 Web Application 由一个或者多个 Servlet 组成。

三. 建立 Java的Web站点

1. 在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文件。

2. 在webapp1目录下建立一个 index.jsp 的测试页面。

3. 修改Tomcat的server.xml文件

定义一个虚拟主机,并将网站文件路径指向已建立的/web/webapp1,在host段增加context段


4. 关闭Tomcat,在重新启动

6. 确认web

通过浏览器访问http://192.168.10.102:8080

四. 案例nginx+Tomcat负载均衡,动静分离群集

1. 案例概述

通常情况下,一台Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的 请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 Web 站点 架构。
Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低。目 前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整 个站点的负载并发能力。
Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、htm1、css、js 等),经过 Nginx 前端的反向代理加速 和过滤,后端Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在性能与稳定性的权衡下,使用 NginxtTomcat 搭配便可让它们在各自擅长的领域大展拳脚。
本案例介绍以 Nginx 作为负载均衡器、静态页面处理,Tomcat 作为应用服务器的负载 群集、动态页面处理的设置方法。

2. 案例环境

主机IP 地址操作系统应用
Nginx 服务器192.168.10.1010penEulernginx-1.26.3
Tomcat1 服务器192.168.10.1020penEulerapache-tomcat-9.0.8
Tomcat2 服务器192.168.10.1030penEulerapache-tomcat-9.0.8

案例需求
① 安装 nginx、tomcat;
②nginx、tomcat 配置:
③ 编写动静分离页面。

3. 案例实施

Tomcat2 server 配置

Tomcat2 server 配置方法基本同 Tomcatl,其中包括:(1)关闭防火墙。
(2)确认是否安装JDK,JAVA 版本与 Tomcatl server 保持一致。
(3)安装配置 Tomcat,版本与 Tomcatl server 保持一致

(4)创建/web/webappl 目录,修改 Tomcat 配置文件 server.xml,将网站文件目录更改 到/web/webapp1/路径下。
(5)在/web/webapp1/路径下建立 index.jsp,为了区别将测试页面 index.jsp 的内容更改如下。

(6) 启动Tomcat

4. nginx 服务器配置

在nginx服务器192.168.10.101上安装nginx,反向代理到两个Tomcat站点,并实现负载均衡

//关闭防火墙
systemctl stop firewalld
setenforce 0//安装相关软件包
dnf install -y gcc make pcre-devel zlib-devel openssl-dever perl-ExtUtils-MakeMaker//解压并安装 Nginx
useradd -M-s /sbin/nologin nginx
tar zxf nginx-l.26.3. tar. gz
cd nginx-1.26.3
./configure --prefix=/usr/local/nginxuser=nginx--group=nginx --with-http_ssl_module --with-http_v2 module--with-pcre
make && make install

5. 配置 nginx.conf

准备静态图片  测试nginx配置文件是否正确 重启nginx服务

6. 测试

刷新页面会从2变成1

在 Web 应用架构中,Tomcat 作为 Java 应用服务器,擅长处理动态请求与业务逻辑,但在处理静态资源(如图片、CSS、JS文件)时效率相对较低,且可能占用服务器宝贵的计算资源。而 Nginx 作为高性能的 HTTP 和反向代理服务器,在静态资源处理方面表现卓越,能够快速响应并缓存静态内容,减轻后端服务器的压力。通过将 Nginx与 Tomcat 结合,实现动静分离架构,即Nginx负责处理静态资源请求,Tomcat 专注于处理动态请求,两者通过高效协作不仅提升了整体系统的响应速度和吞吐量,还增强了系统的可扩展性和稳定性,是现代Web应用架构优化的重要实践。

五. 纯命令

Tomcat1

dnf -y install java
tar z apache
mv apache /usr/local/tomcat
cd /usr/local/tomcat
cd bin
ls
./startup.sh
netstat -anpt | grep java
mkdir -p /web/webapp1
cd /web/webapp1/           
vim index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<html>   
<head><title>JSP test page</title>   </head><body><% out.println("动态页面 1,http://www.test1.com");%></body><body><div>动态页面的图片 1</div><br><img src="logo.png"></body>
</html>vim /usr/local/tomcat/conf/server.xml
<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><Context docBase="/web/webapp1" path="" />     //添加/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

Tomcat2 

dnf -y install java
tar z apache
mv apache /usr/local/tomcat
cd /usr/local/tomcat
cd bin
ls
./startup.sh
netstat -anpt | grep java
mkdir -p /web/webapp1
cd /web/webapp1/           
vim index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<html>   
<head><title>JSP test page</title>   </head><body><% out.println("动态页面 2,http://www.test2.com");%></body><body><div>动态页面的图片 2</div><br><img src="logo.png"></body>
</html>vim /usr/local/tomcat/conf/server.xml
<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><Context docBase="/web/webapp1" path="" />     //添加/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

nginx

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
//添加
upstream tomcat_server {server 192.168.10.102:8080 weight=1;server 192.168.10.103:8080 weight=2;}charset utf8;    //去掉#号 修改为utf-8//添加location ~ .*.jsp$ {proxy_set_header HOST $host;proxy_set_header Client-IP $remote_addr;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://tomcat_server;}location ~ .*\.(png|jpg|jpeg|gif)$ {root /usr/local/nginx/html/img;expires 10d;}[root@localhost ~]# nginx -t
[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# mkdir /usr/local/nginx/html/img
[root@localhost ~]# cd /usr/local/nginx/html/img/
//添加Tomcat上面网页的图片

访问http://192.168.10.101/index.jsp

 

 


http://www.hkcw.cn/article/DnNxAZcjZN.shtml

相关文章

WSL安装及使用 (适用于 Linux 的 Windows 子系统)

WSL简介 WSL&#xff1a;适用于 Linux 的 Windows 子系统&#xff0c;有1和2两个版本&#xff0c;1是windows重新实现了linux接口&#xff0c;2是原生linux内核。目前 WSL2 为默认模式&#xff0c;兼容性和性能更好。 wsl中文官网 安装 确保以下功能开启&#xff1a; 控制面…

JavaSec | SpringAOP 链学习分析

目录: 链子分析 反向分析 正向分析 poc 构造 总结 链子分析 反向分析 依赖于 Spring-AOP 和 aspectjweaver 两个包&#xff0c;在我们 springboot 中的 spring-boot-starter-aop 自带包含这俩类&#xff0c;所以也可以说是 spring boot 的原生反序化链了&#xff0c;调用…

PV操作的C++代码示例讲解

文章目录 一、PV操作基本概念&#xff08;一&#xff09;信号量&#xff08;二&#xff09;P操作&#xff08;三&#xff09;V操作 二、PV操作的意义三、C中实现PV操作的方法&#xff08;一&#xff09;使用信号量实现PV操作代码解释&#xff1a; &#xff08;二&#xff09;使…

医疗内窥镜影像工作站技术方案(续)——EFISH-SCB-RK3588国产化替代技术深化解析

一、异构计算架构的医疗场景适配 ‌多核任务调度优化‌ ‌A76/A55协同计算‌&#xff1a;4Cortex-A762.4GHz负责AI推理&#xff08;如息肉识别算法&#xff09;&#xff0c;4Cortex-A551.8GHz处理DICOM影像传输协议&#xff0c;多任务负载效率比赛扬N系列提升80%‌NPU加速矩阵…

HCIP-Datacom Core Technology V1.0_3 OSPF基础

动态路由协议简介 静态路由相比较动态路由有什么优点呢。 静态路由协议&#xff0c;当网络发生故障或者网络拓扑发生变更&#xff0c;它需要管理员手工配置去干预静态路由配置&#xff0c;但是动态路由协议&#xff0c;它能够及时自己感应网络拓扑变化&#xff0c;不路由选择…

敏捷转型:破局之道

在数字化浪潮与市场不确定性加剧的背景下&#xff0c;传统组织向敏捷组织转型已成为企业生存与发展的核心命题。这种转型并非简单的工具迭代或流程优化&#xff0c;而是涉及治理结构、文化基因与人才机制的深度重构。理解两种组织形态的本质差异&#xff0c;明确转型的适用场景…

WordPress 6.5版本带来的新功能

WordPress 6.5正式上线了&#xff01;WordPress团队再一次为我们带来了许多新的改进。在全球开发者的共同努力下&#xff0c;WordPress推出了许多新的功能&#xff0c;本文将对其进行详细总结。 Hostease的虚拟主机现已支持一键安装最新版本的WordPress。对于想要体验WordPres…

软硬解锁通用Switch大气层1.9.0系统+20.0.1固件升级 图文教程 附大气层大气层固件升级整合包下载

软硬解锁通用Switch大气层1.9.0系统20.0.1固件升级 图文教程 附大气层大气层固件升级整合包下载 大气层&#xff08;Atmosphere&#xff09;是为任天堂 Switch 主机开发的免费开源自定义固件&#xff08;CFW&#xff09;&#xff0c;由开发者 SciresM 领导的团队维护。它允许用…

Redisson学习专栏(五):源码阅读及Redisson的Netty通信层设计

文章目录 前言一、分布式锁核心实现&#xff1a;RedissonLock源码深度解析1.1 加锁机制&#xff1a;原子性与重入性实现1.2 看门狗机制&#xff1a;锁自动续期设计1.3 解锁机制&#xff1a;安全释放与通知1.4 锁竞争处理&#xff1a;等待队列与公平性1.5 容错机制&#xff1a;异…

字节新出的MCP应用DeepSearch,有点意思。

大家好&#xff0c;我是苍何。 悄悄告诉你个事&#xff0c;昨天我去杭州参加字节火山方舟举办的开发者见面会了&#xff0c;你别说&#xff0c;还真有点刘姥姥进大观园的感觉&#x1f436; 现场真实体验完这次新发布的产品和模型&#xff0c;激动的忍不住想给大家做一波分享。…

光耦电路学习,光耦输入并联电阻、并联电容,光耦输出滤波电路

一般的光耦电路&#xff0c;只需要输入限流电阻&#xff0c;输出上拉电阻即可。 实际使用时&#xff0c;比如工控等一些干扰大、存在浪涌电压等的场合&#xff0c;根据实际可以添加一些抗干扰电路、滤波电路&#xff0c;增加电路抗干扰能力。 比如&#xff1a; 1、给光耦输入两…

JVM知识

目录 运行时数据区域 程序计数器 Java虚拟机栈 局部变量表 操作数栈 动态链接 本地方法栈 Java堆 方法区 运行时常量池 字符串常量池 直接内存 Java对象的创建过程 对象的内存布局 对象的访问 常见的 GC 类型 ​​Minor GC&#xff08;Young GC&#xff09;​ …

Spring AI介绍及大模型对接

目录 1. Spring AI介绍 2. Spring AI常用组件 2.1. Chat Client API 2.2. Models 2.3. Vector Databases 2.4. RAG 2.5. MCP 3. 大模型对接举例 3.1. 获取deepseek的API keys 3.2. idea创建工程 3.3. 配置application.yml 3.4. 编写Controller测试类 3.5. 验证Con…

C++算法训练营 Day6 哈希表(1)

1.有效的字母异位词 LeetCode&#xff1a;242.有效的字母异位词 给定两个字符串s和t &#xff0c;编写一个函数来判断t是否是s的字母异位词。 示例 1: 输入: s “anagram”, t “nagaram” 输出: true 示例 2: 输入: s “rat”, t “car” 输出: false 解题思路&#xff…

LeetCode hot100-11

题目描述 题目链接&#xff1a;滑动窗口最大值 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入…

js web api阶段

一.变量声明 1.JS中的const const在js修饰数组和对象&#xff0c;本质类似与c的引用数据类型&#xff0c;所以类似于 int* const ref 修饰的是地址&#xff0c;值是可以改变的 然后下面这种情况是禁止的 左边这种都有括号&#xff0c;说明是建立了一个块新地址去存放&#xf…

【计算机网络】数据链路层——ARP协议

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;计算机网络 &#x1f339;往期回顾&#x1f339;&#xff1a;【计算机网络】网络层IP协议与子网划分详解&#xff1a;从主机通信到网络设计的底层逻辑 &#x1f516;流…

群晖 NAS 如何帮助培训学校解决文件管理难题

在现代教育环境中&#xff0c;数据管理和协同办公的效率直接影响到教学质量和工作流畅性。某培训学校通过引入群晖 NAS&#xff0c;显著提升了部门的协同办公效率。借助群晖的在线协作、自动备份和快照功能&#xff0c;该校不仅解决了数据散乱和丢失的问题&#xff0c;还大幅节…

基于LLaMA-Factory和Easy Dataset的Qwen3微调实战:从数据准备到LoRA微调推理评估的全流程指南

随着开源大模型如 LLaMA、Qwen 和 Baichuan 的广泛应用&#xff0c;其基于通用数据的训练方式在特定下游任务和垂直领域中的表现仍存在提升空间&#xff0c;因此衍生出针对具体场景的微调训练需求。这些训练涵盖预训练&#xff08;PT&#xff09;、指令微调&#xff08;SFT&…

视觉语言动作模型 (VLAs) :赋予机器行动的智慧

文章目录 一、VLA 的诞生&#xff1a;从单模态到多模态的飞跃二、深入剖析 VLA&#xff1a;核心组件与工作原理三、前沿进展&#xff1a;那些令人瞩目的 VLA 模型与趋势四、VLA 的广阔天地&#xff1a;应用场景一览五、挑战与荆棘&#xff1a;VLA 面临的难题六、未来展望&#…