LVS负载均衡群集
这里写目录标题
- 案例:部署Tomcat
- 案例分析
- 案例概述
- 案例前置知识点
- Tomcat 简介
- 应用场景
- 案例环境
- 案例实施
- 实施准备
- 关闭 firewalld 防火墙
- 在安装Tomcat之前必须先安装JDK
- 查看JDK是否安装
- 安装配置 Tomcat
- Tomcat 的安装和配置步骤如下:
- 解压后生成 apache-tomcat-9.0.8文件夹,将该文件夹移动到/usr/local/下并 改名为 tomcat9
- 启动 tomcat
- 打开浏览器访问测试:http://172.16.16.172:8080/
- Tomcat 配置相关说明
- 主要目录说明
- 配置文件说明
- Tomcat 主配置文件说明
- TomcatServer的组成部分说明
- 建立Java的Web站点
- 在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文 件
- 在webapp1 目录下建立一个 index.jsp 的测试页面
- 修改Tomcat的server.xml 文件
- 关闭 Tomcat,再重新启动
- 确认 Web 站点
- 案例:Nginx+Tomcat 负载均衡、动静分离群集
- 案例概述
- 案例环境
- 案例实施
- Tomcat2 server 配置
- Nginx 服务器配置
- 关闭防火墙
- 安装相关软件包
- 配置nginx.conf
- 启动服务
- 查看进程
- 查看端口及PID进程号
- 查看日志
案例:部署Tomcat
案例分析
案例概述
京北点指科技有限公司发布V3版移联建站管理系统,该项目为Java 语言开发的Web 站点。目前,IBM 的 WebSphere 及 0racle 的 WebLogic 占据了市面上 Java 语言 Web站点的大部分份额。这两种软件以其无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司 的Web 场景中,但是其高昂的价格也使得小型互联网公司对此望而却步
Tomcat 自 5.x版本以来,其性能上已经得到了大幅的提升,再加上其开放性的框架和 可二次开发等特性,已经完全可以用在访问量不是很大的生产环境下。 目前,大多数用于 JSP 技术开发的电子商务网站基本应用了 Tomcat,而且 Tomcat 的Servlet 和JSP 这两种 API 也完全可以适用于 V3 版移联建站管理系统
案例前置知识点
Tomcat 简介
名称由来:Tomcat 最初是由Sun 的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun 贡献给 Apache 软件基金会。由于大部分开源项目 0’Rei1ly 都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为 Tomcat(公猫)。而 0’Reilly 出版的介绍 Tomcat 的书籍的封面也被设计成了一个公猫的形象。而 Tomcat 的 Logo 兼吉祥物也被设计成了一只公猫
其实 Tomcat 在开始研发的时候并不叫这个名字,早期 Tomcat 项目的名字叫Catalina,所以当我们安装完 Tomcat 后会发现安装路径下面有很多和 Catalina 有关的目录和文件,而这些文件通常也是我们使用或者配置Tomcat 的重要文件
应用场景
Tomcat 服务器是一个免费的开放源代码的 Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 一般来说,Tomcat 虽然和 Apache 或者 ginx 这些 Web 服务器一样,具有处理 HTML页面的 功能,然而由于其处理静态 HTML的能力远不及 Apache 或者Nginx,所以 Tomcat 通常是作 为一个 Servlet 和 JSP 容器
案例环境
服务器及硬件选购;
测试并安装 tomcat;
部署 tomcat 站点
案例实施
实施准备
关闭 firewalld 防火墙
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# setenforce 0
在安装Tomcat之前必须先安装JDK
JDK 的全称是 Java Development Kit,是 Sun 公司免费提供的 Java 语言的软件开发工具包,其中包含 Java 虚拟机(JVM)。编写好的Java 源程序经过编译可形成Java 字节码,只要安装了 JDK,就可以利用 JVM 解释这些字节码文 件,从而保证了Java 的跨平台性
在平台兼容性方面,JDK 作为解释字节码文件并据此调用操作系统API 实现对应功Java 虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat 也具有上述特征,默认情况下JDK 已经安装,所以需要预先下载 Tomcat,本章中所使用的 Tomcat 软件的源码包为 apache-tomcat-9.0.8.tar.gz
查看JDK是否安装
运行 java -version 命令査看 Java 是否安装。如果没有安装需要自行下载安装
安装配置 Tomcat
Tomcat 的安装和配置步骤如下:
解压 apache-tomcat-9.0.8.tar.gz 包
[root@bogon ~]# tar xf apache-tomcat-9.0.8.tar.gz
解压后生成 apache-tomcat-9.0.8文件夹,将该文件夹移动到/usr/local/下并 改名为 tomcat9
[root@bogon ~]# mv apache-tomcat-9.0.8/ /usr/local/tomcat9
启动 tomcat
[root@bogon tomcat9]# /usr/local/tomcat9/bin/startup.sh
Tomcat 默认运行在 8080 端口,运行 netstat 命令査看 8080 端口监听的信息
[root@bogon bin]# netstat -anpt | grep java
tcp6 0 0 :::8009 :::* LISTEN 2235/java
tcp6 0 0 :::8080 :::* LISTEN 2235/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2235/java
打开浏览器访问测试:http://172.16.16.172:8080/
Tomcat 配置相关说明
Tomcat 的主目录为/usr/local/tomcat9/
主要目录说明
—bin/:存放 Windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件
—conf/:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和web.xml.
—lib/:存放 Tomcat 运行需要的库文件(JARS)
—logs:存放 Tomcat 执行时的 LOG 文件
—webapps:Tomcat 的主要 Web 发布目录(包括应用程序示例)
—work:存放 JSP 编译后产生的 class 文件
配置文件说明
执行“1l conf/ ”命令,便可看到配置文件清单
- 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 等相关配置
Tomcat 主配置文件说明
server.xml 为 Tomcat 的主要配置文件,通过配置该文件,可以修改 Tomcat 的启动端 口、网站目录、虚拟主机、开启 https 等重要功能
整个server.xml 由以下结构构成:、、、、、</Context〉、</Host〉、、和以下是默认安装后 server.xml文件的部分内容,其中 内的内容是注释信息,黑色斜体部分是需要注意和需要经常更改的部分
TomcatServer的组成部分说明
Tomcat Server 由Server、Service、Connector、Engine、Host 和 Context 组成
(1)ServerServer 元素代表了整个 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站点
执行下面步骤可以建立Java 的 Web 站点
在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文 件
在webapp1 目录下建立一个 index.jsp 的测试页面
修改Tomcat的server.xml 文件
定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webappl,在 host 段增加context 段
关闭 Tomcat,再重新启动
确认 Web 站点
通过浏览器访问 http://192.168.10.101:8080/,出现如图 5.3 所示的页面,说明该Tomcat 站点已经配置成功,并且已经能够运行 JSP了
案例:Nginx+Tomcat 负载均衡、动静分离群集
案例概述
通常情况下,一台Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的 请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 Web 站点 架构
Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力
Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、html、css、js 等),经过 Nginx 前端的反向代理加速 和过滤,后端Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用 Nginx+Tomcat 搭配便可让它们在各自擅长的领域大展拳脚
案例环境
安装 nginx、tomcat
nginx、tomcat 配置
编写动静分离页面
案例实施
Tomcat2 server 配置
Tomcat2 server 配置方法基本同 Tomcatl,其中包括:
(1)关闭防火墙
(2)确认是否安装JDK,JAVA 版本与 Tomcatl server 保持一致
(3)安装配置 Tomcat,版本与 Tomcatl server 保持一致
(4)创建/web/webapp1 目录,修改 Tomcat 配置文件 server.xml,将网站文件目录更改 到/web/webapp1/路径下
(5)在/web/webapp1/路径下建立 index.jsp,为了区别将测试页面 index.jsp 的内容更改如下
[root@bogon ~]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<head>
<title>JSP test2 page</title>
</head>
<body><% out.println("动态 2,http://www.test.com") ;%>
</body>
<body>
<div>动态 2</div><br><img src="logo.jpg">
</body>
</html>
(6)启动 Tomcat,浏览器访问 Tomcat2 server,测试 http://192.168.10.103:8080/
Nginx 服务器配置
在 Nginx 服务器 192.168.10.103 上安装 Nginx,反向代理到两个 Tomcat 站点,并实现负载均衡
关闭防火墙
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# setenforce 0
安装相关软件包
[root@bogon ~]# dnf install -y gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker git wget tar
配置nginx.conf
[root@bogon ~]# vim /usr/local/nginx/conf/nginx.conf
[root@bogon ~]# mkdir /usr/local/nginx/html/img
[root@bogon ~]# cp /root/logo.jpg /usr/local/nginx/html/img/
[root@bogon ~]# cp /root/logo.jpg /usr/local/nginx/html/img/
启动服务
[root@bogon ~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
查看进程
[root@bogon ~]# ps aux | grep nginx
root 16614 0.0 0.1 9800 3720 ? Ss 4月22 0:00 nginx: master process /usr/local/sbin/nginx
nginx 16666 0.0 0.1 11544 4628 ? S 4月22 0:00 nginx: worker process
root 17235 0.0 0.2 21988 8056 pts/0 S+ 00:07 0:00 grep --color=auto nginx
查看端口及PID进程号
[root@bogon ~]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16614/nginx: master
查看日志
[root@bogon ~]# nginx -s stop
[root@bogon ~]# nginx
[root@bogon ~]# cd /usr/local/nginx/
[root@bogon nginx]# ls
client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp
[root@bogon nginx]# cd logs/
[root@bogon logs]# ls
access.log error.log nginx.pid
[root@bogon logs]# cat access.log
192.168.10.101 - - [22/Apr/2025:16:45:31 +0800] "HEAD / HTTP/1.1" 200 0 "-" "curl/8.4.0"
192.168.10.101 - - [22/Apr/2025:16:47:47 +0800] "HEAD / HTTP/1.1" 200 0 "-" "curl/8.4.0"
192.168.10.1 - - [23/Apr/2025:00:40:58 +0800] "GET /index.jsp HTTP/1.1" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
192.168.10.1 - - [23/Apr/2025:00:40:58 +0800] "GET /favicon.ico HTTP/1.1" 404 548 "http://192.168.10.101/index.jsp" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
192.168.10.1 - - [23/Apr/2025:00:41:02 +0800] "GET /index.jsp HTTP/1.1" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
192.168.10.1 - - [23/Apr/2025:00:41:02 +0800] "GET /index.jsp HTTP/1.1" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
192.168.10.1 - - [23/Apr/2025:00:41:03 +0800] "GET /index.jsp HTTP/1.1" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
192.168.10.1 - - [23/Apr/2025:00:41:03 +0800] "GET /index.jsp HTTP/1.1" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
192.168.10.1 - - [23/Apr/2025:00:41:03 +0800] "GET /index.jsp HTTP/1.1" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
192.168.10.1 - - [23/Apr/2025:00:41:15 +0800] "GET /index.jsp HTTP/1.1" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"
相关文章:
LVS负载均衡群集
这里写目录标题 案例:部署Tomcat案例分析案例概述案例前置知识点Tomcat 简介应用场景 案例环境 案例实施实施准备关闭 firewalld 防火墙在安装Tomcat之前必须先安装JDK 查看JDK是否安装安装配置 TomcatTomcat 的安装和配置步骤如下:解压后生成 apache-tomcat-9.0.8文件夹&#…...
【unitrix】 3.5 类型级别的比较系统(cmp.rs)
一、源码 这段代码定义了一个类型级别的比较系统,主要用于在编译时比较类型并得出比较结果。它使用了 Rust 的类型系统和标记特征(trait)来实现这一功能。 use crate::sealed::Sealed; use crate::number::{Z0, P1, N1}; use core::cmp::Ordering;// 比较结果类型…...
防御式编程:防止 XSS 攻击
对用户输入进行编码和过滤是防止 XSS 攻击的关键。以下是改进后的代码示例: from flask import Flask, request, escape from markupsafe import Markup app Flask(__name__) app.route(/comment, methods[POST]) def comment(): user_comment escape(re…...
【Java项目设计】基于Springboot+Vue的OA办公自动化系统
介绍: 基于Springboot为后端,vue为前端的企业综合性OA办公自动化平台,涵盖九大核心模块,全方位解决企业日常办公需求,提升工作效率和管理水平。系统采用模块化设计,功能全面且易于扩展,从基础登…...
WebServer实现:muduo库的主丛Reactor架构
前言 作为服务器,核心自然是高效的处理来自client的多个连接啦,那问题在于,如何高效的处理client的连接呢?这里就介绍两种架构:单Reactor架构和主丛Reactor架构。 单Reactor架构 单Reactor架构的核心为,由一个主线程监…...
每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系
现代前端工程化与构建工具体系 1. 为什么要工程化?(面试高频问题) 问题痛点: 模块太多、无法组织;代码冗长、性能差;浏览器兼容性差;团队协作混乱,缺少规范与自动化。 工程化目标…...
nginx的下载与安装 mac
1. 下载 方法一:本地下载 链接:https://nginx.org/en/download.html(可直接搜官网) 下载到本地后,上传到linux的某个文件夹中 方法二:直接linux上下载(推荐) wget -c http://ngi…...
[持续集成]
学习目标 能够使用 Git 代码托管平台管理代码能够实现 jenkinspostman 的持续集成能够实现 jenkins代码 的持续集成 持续集成 概念 : 将自己工作成果持续不断地把代码聚集在一起,成员可以每天集成一次或多次相关工具 : git : 代码管理工具,自带本地仓库gitee : 远程代码管理…...
Spring Aop @AfterThrowing (异常通知): 使用场景
核心定义 AfterThrowing 是 Spring AOP 中专门用于处理异常场景的**通知(Advice)**类型。它的核心作用是: 仅在目标方法(连接点)的执行过程中抛出异常时,执行一段特定的逻辑。如果目标方法成功执行并正常…...
【赵渝强老师】Kubernetes的安全框架
Kubernetes集群的安全框架主要由以下认证、鉴权和准入控制三个阶段组成。这三个阶段的关系如下图所示。 视频讲解如下 【赵渝强老师】Kubernetes的安全框架 认证(Authentication) 当客户端与Kubernetes集群建立HTTP通信时,首先HTTP请求会进…...
【Python小练习】3D散点图
资产风险收益三维分析 背景 王老师是一名金融工程研究员,需要对多个资产的预期收益、风险(波动率)和与市场的相关性进行综合分析,以便为投资组合优化提供决策依据。 代码实现 import matplotlib.pyplot as plt from mpl_toolk…...
腾讯混元3D制作简单模型教程-2
以下是腾讯混元3D制作简单模型的详细教程,整合最新版本特性(截至2025年6月),操作门槛低且无需专业基础: 🖥 一、在线生成(最快30秒完成) 访问平台 打开 腾讯混元3D创作引擎官网…...
NVIDIA开源Fast-dLLM!解析分块KV缓存与置信度感知并行解码技术
Talk主页:http://qingkeai.online/ 文章原文:https://mp.weixin.qq.com/s/P0PIAMo1GVYH4mdWdIde_Q Fast-dLLM 是NVIDIA联合香港大学、MIT等机构推出的扩散大语言模型推理加速方案。 论文:Fast-dLLM: Training-free Acceleration of Diffusion…...
大白话说目标检测中的IOU(Intersection over Union)
很多同学在学习目标检测时都会遇到IoU这个概念,但总觉得理解不透彻。这其实很正常,因为IoU就像个"多面手",在目标检测的各个阶段都要"打工",而且每个阶段的"工作内容"还不太一样。 今天我就让IoU自…...
CentOS 8解决ssh连接github时sign_and_send_pubkey失败问题
我在一台centos8机器上安装git环境以连接到github,首先第一步需配置好ssh环境,因为我已经有一台Ubuntu机器已经配置好ssh环境,所以我ftp Ubuntu机器取得id_rsa id_rsa.pub known_hosts三个文件,然后执行命令: $ git …...
回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务
需要dns代理 1 配置需求或说明 1.1 适用的产品系列 本案例适用于软件平台为Comware V7系列防火墙:本案例适用于如F5080、F5060、F5030、F5000-M等F5000、F5000-X系列的防火墙。 注:本案例是在F100-C-G2的Version 7.1.064, Release 9510P08版本上进行…...
OpenCV实现二值图细化(骨架提取)
对二值图进行细化(骨架提取),也就是把每根线条细化到一个像素的宽度。有两个比较成熟的算法实现此功能,分别是Zhang-Suen算法和Guo-Hall算法。 我们下面使用OpenCVSharp,使用C#实现上述两个算法: private…...
Excel常用公式大全
资源宝整理分享:https://www.httple.net Excel常用公式大全可以帮助用户提高工作效率,掌握常用的Excel公式,让数据处理和计算工作更加便捷高效。了解公式学习方法、用途,不再死记硬背,拒绝漫无目的。 命令用途注释说…...
在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)
言简意赅的讲解Docker Desktop for Windows搭建Kubernetes解决的痛点 目标读者: 对 Docker Desktop 有一定了解,能在 Windows 上成功安装和使用 Docker Desktop。想要在本地快速搭建一套 Kubernetes 环境进行测试或学习的开发者。 一、准备工作 安装 Doc…...
Python设计模式终极指南:18种模式详解+正反案例对比+框架源码剖析
下面我将全面解析18种Python设计模式,每种模式都包含实际应用场景、优缺点分析、框架引用案例、可运行代码示例以及正反案例对比,帮助您深入理解设计模式的价值。 一、创建型模式(5种) 1. 单例模式(Singleton&#x…...
第1章: 伯努利模型的极大似然估计与贝叶斯估计
伯努利模型的极大似然估计与贝叶斯估计 import numpy as np import matplotlib.pyplot as plt from scipy.stats import beta, bernoulli from scipy.optimize import minimize_scalar# 设置中文字体 plt.rcParams[font.sans-serif] [SimHei] # 使用黑体 plt.rcParams[axes.…...
IPv4编址及IPv4路由基础
一、实验目的 掌握接口 IPv4 地址的配置方法理解 LoopBack 接口的作用与含义理解直连路由的产生原则掌握静态路由的配置方法并理解其生效的条件掌握通过 PING 工具测试网络层连通性掌握并理解特殊静态路由的配置方法与应用场景 二、实验环境 安装有eNSP模拟器的PC一台&#…...
基于Python的机动车辆推荐及预测分析系统
博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言࿰…...
SpringBoot扩展——发送邮件!
发送邮件 在日常工作和生活中经常会用到电子邮件。例如,当注册一个新账户时,系统会自动给注册邮箱发送一封激活邮件,通过邮件找回密码,自动批量发送活动信息等。邮箱的使用基本包括这几步:先打开浏览器并登录邮箱&…...
啊啊啊啊啊啊啊啊code
前序遍历和中序遍历构建二叉树 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNod…...
不同程度多径效应影响下的无线通信网络电磁信号仿真数据生成程序
生成.mat数据: %创建时间:2025年6月19日 %zhouzhichao %遍历生成不同程度多径效应影响的无线通信网络拓扑推理数据用于测试close all clearsnr 40; n 30;dataset_n 100;for bias 0.1:0.1:0.9nodes_P ones(n,1);Sampling_M 3000;%获取一帧信号及对…...
C语言学习day17-----位运算
目录 1.位运算 1.1基础知识 1.1.1定义 1.1.2用途 1.1.3软件控制硬件 1.2运算符 1.2.1与 & 1.2.2或 | 1.2.3非 ~ 1.2.4异或 ^ 1.2.5左移 << 1.2.6右移 >> 1.2.7代码实现 1.2.8置0 1.2.9置1 1.2.10不借助第三方变量,实现两个数的交换…...
Spring MVC参数绑定终极手册:单多参对象集合JSON文件上传精讲
我们通过浏览器访问不同的路径,就是在发送不同的请求,在发送请求时,可能会带一些参数,本文将介绍了Spring MVC中处理不同请求参数的多种方式 一、传递单个参数 接收单个参数,在Spring MVC中直接用方法中的参数就可以…...
宽度优先遍历(bfs)(2)——fllodfill算法
欢迎来到博主的专栏:算法解析 博主ID:代码小豪 文章目录 floodfiil算法leetcode733——图像渲染题目解析算法原理题解代码 leetcode130——被围绕的区域题目解析算法原理题解代码 floodfiil算法 floodfill算法,在博主这里看来则是一个区域填…...
嵌入式编译工具链熟悉与游戏移植
一、Linux 系统编译工具链使用与 mininim 源码编译 在 Ubuntu 系统上编译 mininim 开源游戏需要正确配置编译工具链和依赖库。以下是详细的操作步骤和故障解决方法: 1. 环境准备与源码获取 首先需要安装必要的编译工具和依赖库: # 更新系统软件包索引…...
STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议
STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议,主要用于帮助位于网络地址转换 (NAT) 设备(如路由器)后面的客户端发现自己的公共 IP 地址和端口号。这对于建立点对点 (P2P) 通信至关重要,尤其是在 VoIP&#…...
Transformer结构介绍
[编码器 Encoder] ←→ [解码器 Decoder] 编码器: 输入:源语言序列输出:每个词的上下文表示(embedding) 解码器:输入:目标语言序列编码器输出输出:下一个词的概率分布(目标句子生成)…...
SpringBoot扩展——应用Web Service!
应用Web Service Web Service是一个SOA(面向服务的编程)架构,这种架构不依赖于语言,不依赖于平台,可以在不同的语言之间相互调用,通过Internet实现基于HTTP的网络应用间的交互调用。Web Service是一个可以…...
5G核心网周期性注册更新机制:信令流程与字段解析
一、周期性注册更新的技术背景与流程概述 1.1 注册更新的核心目的 在5G网络中,UE通过周期性注册更新维持与核心网的连接状态,主要作用包括: 状态保活:避免AMF因超时而释放UE上下文(T3512定时器超时前需完成更新);位置更新:通知网络UE的当前位置,确保寻呼可达;能力同…...
【LLM学习笔记3】搭建基于chatgpt的问答系统(下)
目录 一、检查结果检查有害内容检查是否符合产品信息 二、搭建一个简单的问答系统三、评估输出1.当存在一个简单的正确答案2.当不存在一个简单的正确答案 一、检查结果 本章将引领你了解如何评估系统生成的输出。在任何场景中,无论是自动化流程还是其他环境&#x…...
算法导论第十九章 并行算法:解锁计算新维度
第十九章 并行算法:解锁计算新维度 “并行计算不是未来,而是现在。” —— David Patterson 在单核性能增长放缓的时代,并行算法成为突破计算极限的关键。本章将带你探索多核处理器、分布式系统和GPU加速的奇妙世界,揭示如何通过协…...
Python 数据分析与可视化 Day 1 - Pandas 数据分析基础入门
🎯 今日目标 理解 Pandas 的作用和核心概念学会创建 Series 和 DataFrame掌握基本数据读取(CSV)与常用查看方法 🧰 1. 什么是 Pandas? Pandas 是基于 NumPy 的强大数据分析库,提供了灵活的表格数据结构 Da…...
【数字人开发】Unity+百度智能云平台实现长短文本个性化语音生成功能
一、创建自己的应用 百度智能云控制台网址:https://console.bce.baidu.com/ 1、创建应用 2、获取APIKey和SecretKey 3、Api调试 调试网址:https://console.bce.baidu.com/support/?timestamp1750317430400#/api?productAI&project%E8%AF%AD%E9%…...
(哈希)128. 最长连续序列
题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出ÿ…...
MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗
MFC中文本框控件的内容,设置好字体格式后,只能单一的显示,如果相对文本框的内容部分加粗,或者部分加颜色、链接等都无法实现,但MFC中提供了CRichEditCtrl控件,就很方便的实现文本框中部分内容需要特殊处理的…...
Redis 的优势有哪些,它是CP 还是 AP?CAP 理论又是什么?
Redis的核心优势 Redis作为当今最流行的内存数据库之一,具有以下显著优势: 1. 卓越的性能表现 内存存储:数据主要存储在内存中,读写速度极快(10万 QPS)单线程架构:避免多线程竞争,…...
flink的多种部署模式
## 部署模式和运行模式 ### 部署模式 - 本地local - 单机无需分布式资源管理 - 集群 - 独立集群standalone - 需要flink自身的任务管理工具 - jobmanager接收和调度任务 - taskmanager执行 - on其他资源管理工具yarn/k8s …...
SQL分片工具类
SQL分片工具类(SqlShardingUtil)提供数据库查询的智能分片功能,支持数字和字符串两种字段类型的分片策略。对于数字字段,可以指定分片数量均匀划分数值区间;对于字符串字段,则按照ASCII字符范围自动划分。工具类确保分片后的SQL语…...
死锁相关知识
死锁是什么 死锁(Deadlock)是指两个或多个进程(或线程)在执行过程中,因为互相等待对方释放资源,导致永远无法继续执行的状态。 ✅ 死锁的形成条件(必须同时满足以下四个)࿱…...
oscp靶机练习PG Reconstruction
枚举阶段 nmap -A -T4 -p- -Pn -n 192.168.217.103 发现ftp,进行连接枚举 都下载到本地 这里提示我们两点,可以看看pcap文件,还有就是可能有密码遗留还没有删除。 使用下面命令进行过滤筛选流量包,查看与密码相关 http.reque…...
写题。贪心题组
一、 解题思路:主要还是写出val / m,按这个排序,就行了 #include<bits/stdc.h> #define endl "\n" #define ll long long #define pii pair<int,int> using namespace std;struct doro {int m, val;double cmp; } arr…...
UE官方文档学习 TAarry 查询
这个很简单经常用。 二.GetData() . GetData(),像C里拿到数组首地址一样。它不具有越界保护机制,StrArr拥有越界保护机制。这个地址在数组不做改变,如扩容等有用。 void AWXArrayActor::WXFindArray() {TArray<FString> StrArr { &q…...
使用Haproxy搭建Web群集
LVS负载均衡群集 Haproxy介绍http请求负载均衡常用调度算法常见的web群集调度器 示例操作安装httpd(两台网站服务器操作一致)编译安装haproxyhaproxy服务器配置(1)建立haproxy的配置文件(2)修改haproxy.cfg配置文件 测试haproxy的日志(1)修改 haproxy 配…...
Linux 基础命令:`ls`、`cd`、`du` 快速入门
在 Linux 系统中,ls、cd 和 du 是日常操作中最常用的三个命令。掌握它们能大幅提升文件管理效率。 1. ls:查看目录内容 用途:列出当前或指定目录下的文件和子目录。 常用命令: ls -l # 详细列表(权限、大…...
[论文阅读] 人工智能 + 软件工程 | USEagent:迈向统一的AI软件工程师
论文信息 article{applis2025unified,title{Unified Software Engineering agent as AI Software Engineer},author{Applis, Leonhard and Jiang, Nan and Zhang, Yuntong and Tan, Lin and Liang, Shanchao and Roychoudhury, Abhik},journal{arXiv preprint arXiv:2506.1468…...