linux(1.nginx基础 2.使用Nginx负载均衡及动静分离)

news2024/11/26 10:22:49

一.nginx基础

目录

  • 1. Nginx使用场景
  • 2. Nginx中的进程
    • 2.1 Nginx中的多进程模型
    • 2.2 多进程模式的优点:
    • 2.3 缓存
  • 3. Ngnix的负载均衡策略
    • 3.1 轮询法
    • 3.2 加权轮询
    • 3.3 原地址哈希
    • 3.4 最小连接数法
    • 3.5 Fair
    • 3.6 url_hash
  • 3. Nginx配置文件
  • 4. Nginx+tomcat 集群示例
    • 4.1 下载镜像
    • 4.2 在宿主机中创建需要挂载的目录
    • 4.3 常见测试用的index.html
    • 4.4 创建Nginx配置文件
    • 4.5 启动3个tomcat容器准备集群
    • 4.6 根据tomcat容器实际IP修改Nginx配置文件
    • 4.7 启动Nginx容器
    • 4.8 测试集群
  • 5. Nginx部署静态网站
    • 5.1 准备前端应用
    • 5.2 创建构建目录
    • 5.3 构建镜像
    • 5.4 运行容器

1. Nginx使用场景


Nginx的主要使用场景:

  • HTTP服务器
    Nginx可以作为静态服资源服务器来使用,例如在前后端分离的架构中可以将前端应用部署在Nginx服务器中。也可作为上传服务器、图片服务器等使用
  • 作为反向代理
    Nginx可以作为反向代理,将来自互联网的外部请求转发到内网中应用服务器。通过反向代理可以实现负载均衡。
    Nginx内置了丰富的负载均衡算法:轮询,基于权重,ip_hash等,通过第三方支持,还有fair(响应时间短的优先分配),url_hash等。

2. Nginx中的进程


2.1 Nginx中的多进程模型


Nginx的具有很高的性能,有庞大的使用群体,这与它的基本架构有紧密关系。
在Nginx运行时后台包括一个master主进程和多个worker进程。Nginx也可以支持多线程方式工作,但模式使用多进程,也是主流的使用方式。

  • master进程
    主进程主要进行Nginx配置文件解析,数据结构初始化,模块注册配置,信号处理,网络监听,工作进程生成和管理等工作。监控worker进程的状态,在worker进程异常退出后可以自动重新启动进程。

  • worker进程
    多个worker进程之间是对等的关系,竞争去处理客户的请求,一个请求只有一个worker去处理。worker进程数量一般与机器cpu数量相当。每个worker都是单线程的,采用异步非阻塞方式处理请求。是Nginx服务器提供服务的主体。

当一个请求进来时,多个worker会竞争处理这个请求,但有且只有一个worker可以获取到该请求的处理权限。

2.2 多进程模式的优点:


每个worker进程是互相独立的,互相不影响,一个进程的退出不影响其他的进程服务。每个worker进程使用异步非阻塞方式来处理请求,具有很高的性能。

2.3 缓存


Nginx服务器为提供请求的处理效率,减轻网络压力,采用缓存机制。缓存机制将历史应答的数据缓存到本地,并且在Nginx启动后会启动一个专门的后台进程对本地缓存内容建立维护索引,以此来加快缓存文件的访问。

所以Nginx的后台进程出master进程,worker进程以外,还有后端服务进程。

3. Ngnix的负载均衡策略


Nginx中支持多种负载均衡策略,在不同的使用场景中我们可以选择合适的负载均衡策略

3.1 轮询法


将请求轮流分配到注册的后端服务器中,平等的对待所用的后端服务器,不关心服务器的实际连接数就负载情况。比较适合后端服务器的配置都差不多的情况。例如如下配置:

upstream server {
    server 192.160.0.123:8080;
    server 192.160.0.124:8080;
    server 192.160.0.125:8080;
}

3.2 加权轮询


可以为每个武器配置一个权重值,权重值越大将会有机会分担更多的请求,该配置方式比价适合集群中各个服务器配置不均衡的情况,对高的服务器可以配置大一些的权重,对配置低的机器可以配置小一些的权重。

upstream server {
    server 192.160.0.123:8080 weight=4;
    server 192.160.0.124:8080 weight=2;
    server 192.160.0.125:8080 weight=1;
}

3.3 原地址哈希


根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器的大小进行取模计算,得到的结果作为客户端要访问的服务器的序号。

特点:这种方式可以保证来自同一ip的请求被打的固定机器上,可以解决session问题。

示例:

upstream server {
    ip_hash;
    server 192.160.0.123:8080 weight=1;
    server 192.160.0.124:8080 weight=2;
    server 192.160.0.125:8080 weight=1;
}

3.4 最小连接数法


该算法根据后端服务器当前的连接情况,动态的选取其中当前堆积的连接数最少的一台服务器来处理请求,以便于提高服务的利用率。

这种算法比较适合后端各个服务器配置不同的情况。

示例:

upstream server {
    least_conn;
    server 192.160.0.123:8080 weight=1;
    server 192.160.0.124:8080 weight=2;
    server 192.160.0.125:8080 weight=1;
}

3.5 Fair


Fair负载均衡比基于权重,和ip_hash算法更加智能,可以根据后端服务器的响应时间来分配请求,响应时间短优先分配。
该算法由第三方提供,需要安装upstream_fair模块。

示例:

upstream server {
    fair;
    server 192.160.0.123:8080 weight=1;
    server 192.160.0.124:8080 weight=2;
    server 192.160.0.125:8080 weight=1;
}

3.6 url_hash


与ip_hash比较接近,该算法根据url的哈希结果来分配请求,使每个url定向到一台后端服务器上。

该算法为第三方提供,使用时需要先安装Nginx的hash软件包

upstream server {
    hash $request_uri;
    server 192.160.0.123:8080 weight=1;
    server 192.160.0.124:8080 weight=2;
    server 192.160.0.125:8080 weight=1;
}

3. Nginx配置文件


Nginx配置文件主要有4部分:

  • main(全局配置)
    Main部分的设置影响其他所有部分的设置
  • server(主机配置)
    主要用于指定虚拟机主机域名,ip和端口等内容
  • upstream(上游服务器配置,用于反向代理,负载均衡)
    用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡
  • location(url匹配特定位置的配置)
    用于匹配网页位置(如,跟目录“/”,”/images”等)

 

nginx配置文件示例:

#指定用户和用户组,不指定默认为nobody
user  nginx;

#工作进程数,根据机器情况设置
worker_processes  1;

#日志设置
error_log  /var/log/nginx/error.log warn;

#pid文件
pid        /var/run/nginx.pid;

events {
	#配置事件驱动模型,其他还要select,poll,kqueue等
	use epoll;
	#配置每个worker最大连接数
    worker_connections  1024;
}

http {
    #引入其他配置文件,在nginx服务器中有/etc/nginx/mime.types
	#当nginx收到静态请求时,在请求文件的类型在mime.types中匹配mime type
	#这些mime type数据告诉浏览器文件数据的类型,以便于更好的展示数。
    include       /etc/nginx/mime.types;
	
	#默认为二进制数据流
    default_type  application/octet-stream;

	#定义日志格式,$remote_addr,$remote_user等是nginx中的预定义变量
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr"';
	#配置日志
    access_log  /var/log/nginx/access.log  main;

    #使用sendfile系统调用来提高性能
    sendfile        on;
    #tcp_nopush     on;

	#指定 KeepAlive 的超时时间(timeout)
	#keepalive模式告诉web服务器在处理完一个请求后保存这个tcp连接,
	#如果在规定的超时时间内接收到客户端的其他请求,服务端会利用这个未关闭
	#的连接,而不需在重新创建连接
	keepalive_timeout 60s;
	
	#是否开启gzip压缩功能
    #gzip  on;

    upstream tomcat {
        server 172.17.0.2:8080;
        server 172.17.0.3:8080;
    }

    server {
        listen 80;
        server_name localhost;

		#location部分,通过指定模式与客户端请求uri进行匹配。
        #基本语法如下:location [=|~|~*|^~|@] pattern{……}
        #1.没有修饰符 表示必须以指定模式开始。例如:location /abc
        #2.=表示:必须与指定的模式精确匹配。例如:location = /abc
        #3.~表示:指定的正则表达式要区分大小写。例如:location ~ ^/abc$
        #4.~*表示:指定的正则表达式不区分大小写。例如:location ~* ^/abc$
        #5.^~ 类似于无修饰符的行为,也是以指定模式开始,不同的是,如果模式匹配,那么就停止搜索其他模式了
        #正则表达式示例:location ~* \.(gif|jpg|jpeg)$ 匹配任何以gif, jpg, or jpeg结尾的文件
		
		#通用匹配,任何请求都匹配到
        location / {
			#配置转发
			#tomcat为上面upstream部分的定义
            proxy_pass http://tomcat;
			
			#其作用是对发送给客户端的URL进行修改
            proxy_redirect off;
			
			#默认首页
            index index.html index.htm;
			
			#附加字段到请求头
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Real-Port $remote_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

		#静态资源配置
        location /static/ {
			#访问/static/目录中的文件时,
			#nginx会到/usr/share/nginx/html/中查找文件
            alias /usr/share/nginx/html/;
        }
    }

    include /etc/nginx/conf.d/*.conf;
}

4. Nginx+tomcat 集群示例


本示例通过使用docker容器搭建Nginx + tomcat集群,来演示使用Nginx实现负载均衡的例子。

4.1 下载镜像


root@ubuntu:/# docker pull nginx
root@ubuntu:/# docker pull tomcat

4.2 在宿主机中创建需要挂载的目录


1)在宿主机上

  • 创建用于存放nginx配置文件,及日志的目录,
  • tomcat的部署目录,及日志目录。

这些目录在稍后创建容器时会被挂载到容器中,这种方式可以很方便的通过修改宿主机中文件来改变容器中对应文件的目的。

root@ubuntu:/# mkdir -p /opt/nginx/conf/ /opt/nginx/www /opt/nginx/logs

root@ubuntu:/# mkdir -p /opt/tomcat/webapps/ROOT /opt/tomcat/conf /opt/tomcat/logs

4.3 常见测试用的index.html


在宿主机/opt/tomcat/webapps/ROOT目录下创建一个用于测试的html文件。

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"/>
	<title>Nginx+tomcat集群</title>
</head>
<body>
	<h1>Nginx+tomcat集群部署示例</h1>
</body>
<html>

4.4 创建Nginx配置文件


在/opt/nginx/conf目录下创建nginx.conf配置文件, 具体内容请见shang“3. nginx配置文件示例”部分

4.5 启动3个tomcat容器准备集群


root@ubuntu:/# docker run -d --name tomcat1 -v /opt/tomcat/webapps:/usr/local/tomcat/webapps tomcat

root@ubuntu:/# docker run -d --name tomcat2 -v /opt/tomcat/webapps:/usr/local/tomcat/webapps tomcat

root@ubuntu:/# docker run -d --name tomcat3 -v /opt/tomcat/webapps:/usr/local/tomcat/webapps, tomcat

注意:必须将容器的挂载目录设置为:/usr/local/tomcat/webapps,因为在tomcat镜像中将目录设置为工作目录,可以通过:docker inspect tomcat 查看容器的详细信息进行验证。

获取三个tomcat容器的ip地址:

root@ubuntu:/# docker inspect tomcat1 | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
root@ubuntu:/# docker inspect tomcat2 | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",
root@ubuntu:/# docker inspect tomcat3 | grep Address
            "LinkLocalIPv6Address": "",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "GlobalIPv6Address": "",
            "IPAddress": "172.17.0.4",
            "MacAddress": "02:42:ac:11:00:04",
                    "IPAddress": "172.17.0.4",
                    "GlobalIPv6Address": "",
                    "MacAddress": "02:42:ac:11:00:04",

tomcat1, tomcat2, tomcat3 的ip地址分别为 : 172.17.0.2, 172.17.0.3,172.17.0.4

4.6 根据tomcat容器实际IP修改Nginx配置文件


4.7 启动Nginx容器


docker run -d -p 80:80 --name nginx -v /opt/nginx/www:/usr/share/nginx/html -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/logs:/var/log/nginx nginx

4.8 测试集群


Nginx容器正常启动后,访问:http://192.168.62.133/,如果能出现测试页面,则说明集群正常。如下图:

5. Nginx部署静态网站


本示例基于Docker容器在Nginx中部署一个前端网站。现在项目越来越流行前后端分离的开发方式,而Nginx是目前流行的高性能的web服务器,我们可以将前端应用部署在Nginx中。

5.1 准备前端应用


准备一个用于部署的前端应用,为方便演示课件提供一个用于测试的前端应用(\docker+ngnix+vue\dist)。

5.2 创建构建目录


创建一个构建目录,如“docker+ngnix+vue”,并将用于发布的前端应用放入构建目录。然后创建Dockerfile文件。
 

Dockerfile文件如下:

FROM nginx:1.17.9
MAINTAINER lisen "lisensir@qq.com"

#/usr/share/nginx/html
COPY dist/ /usr/share/nginx/html/

本Dockerfile非常简单:

  • 指定基础镜像为 nginx1.17.9
  • 指定维护者信息
  • 将构建目录下的dist目录拷入到 容器的/usr/share/nginx/html/目录下,该目录是静态文件默认放置目录

5.3 构建镜像


将构建目录上传到linux中,然后在linux中进行构建目录,执行构建即可(docker build -t 镜像名称)

root@ubuntu:/home/lisen/docker+ngnix+vue# docker build -t nginx-vue .

5.4 运行容器


在镜像构建完成后,通过进行运行一个容器即可

root@ubuntu:/# docker run -p 80:80 -d --name nginxvue nginx-vue

容器启动后即可访问:http://192.168.62.133

 

 至此部署完成。

二.使用Nginx负载均衡及动静分离

目录

  • 1. 系统拓扑图
  • 2. 环境准备
  • 3. 服务器安装
    • 3.1 mysql,tomcat
    • 3.2 Nginx的安装
  • 4. 部署
    • 4.1 后台服务部署
    • 4.2 Nginx配置负载均衡及静态资源部署

1. 系统拓扑图


 说明:

  • 用户请求达到Nginx
  • 若请求资源为静态资源,则将请求转发至静态资源服务器
  • 若请求资源为动态数据,则将请求转发给web服务器(在这里为tomcat处理),在转发的同时,会根据配置的负载均衡策略进行负载均衡处理。

2. 环境准备


  • 四个虚拟机,一个mysql服务器,两个tomcat服务器, 一个Nginx服务器(Nginx服务同时作为反向代理用于负载均衡,和静态资源服务器)
  • 一套采用前后端分离模式开发的系统(该例准备了webserver.war,对应的前端程序)

3. 服务器安装


3.1 mysql,tomcat


mysql,与tomcat的安装与配置,在前面的课件中已经很详细,这里不再赘述。请参考“Linux-环境搭建-centos”

3.2 Nginx的安装


有两种方式,一种是先下载Nginx,在离线安装; 第二种是yum方式安装。 这里采用离线安装方式, 如果希望使用yum方式安装,可以参考Nginx官方文档。

离线安装步骤:

1) gcc安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装

yum install gcc-c++

2)PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。

yum install -y pcre pcre-devel

3) zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库

yum install -y zlib zlib-devel

4)OpenSSL 安装

OpenSSL 套接字层密码库,有主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库

yum install -y openssl openssl-devel

5) wget下载Nginx

 wget -c https://nginx.org/download/nginx-1.18.0.tar.gz

6)解压

tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

7)配置安装

# 使用默认配置,命令在nginx目录中执行,执行完成会产生MakeFile等文件
./configure

#编译并安装
make
make install

8)启动与停止


#到命令所在目录
cd /usr/local/nginx/sbin/

#启动
./nginx

#停止,强制直接关停
./nginx -s stop

#等待nginx进程处理完任务再停止
./nginx -s quit

#重新加载配置文件
./nginx -s reload

9)配置Nginx自动启动

vim /etc/rc.d/rc.local

修改/etc/rc.d/rc.local的权限: 

chmod 755 rc.local

4. 部署


4.1 后台服务部署


后台服务的部署,非常简单,之间将war包上传至tomcat的webapps目录下即可。

4.2 Nginx配置负载均衡及静态资源部署


1)修改前端程序

注:在部署前端程序时,需要先修改后台server的ip地址配置。

2)将前台程序打包

npm run build

3) 将打包好的前端程序上传到Nginx服务器

 4) nginx.conf配置

vim  /usr/local/nginx/conf/nginx.conf

重新加载配置文件

[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx -s reload

配置完成,启动mysql,tomcat1,tomcat2,nginx等服务进行测试

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

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

相关文章

c++学习-STL常用函数

第八部分-STL常用函数 5.1 常用遍历算法 5.1.1 for_each 5.1.2 transform 5.2 常用查找算法 5.2.1 find 5.2.2 find_if 5.2.3 adjacent_find 面试题中如果出现查找相邻重复元素&#xff0c;记得用stl中的adjacent_find算法 5.2.4 binary_search 5.2.5 count 5.2.6 count_if 5.…

【双十一特辑】爱心代码(程序员的浪漫)-李峋

前言 最近《点燃我温暖你》中李峋的爱心代码超级火&#xff0c;看着特别心动&#xff0c;这不&#xff0c;光棍节快到了&#xff0c;给兄弟们教学一波爱心代码&#xff0c;赶在双十一前表白&#xff0c;让这个双十一不在是孤单一个人&#xff01;目录 前言 C语言简易爱心代码…

final 关键字 —— 限制继承、限制虚函数重写

final 关键字有两个作用&#xff0c;一个是限制继承&#xff0c;一个是限制重写。 目录 1、限制继承 (1) 基类的构造函数设为私有 (2) 基类类名后面加上 final 关键字修饰 2、限制虚函数重写 1、限制继承 限制继承有两种方式&#xff0c;一种是将基类的构造函数设为私有&am…

谷粒商城-基础篇(详细流程梳理+代码)

文章目录前言一、项目环境搭建1.1、安装virtualbox以及vagrant1.2、Docker安装MySQL与Redis1.3、前后端开发工具统一配置1.4、Git工具安装与配置1.5、Gitee创建仓库与IDEA导入1.6、构建微服务模块1.7、编写.gitignore文件&#xff08;忽略上传gitee文件配置&#xff09;1.8、数…

【云原生之K8s】 K8s资源控制及探针检查

文章目录一、资源限制1.资源限制的使用2.request资源&#xff08;请求&#xff09;和limit资源&#xff08;约束&#xff09;3.Pod和容器的资源请求和限制4.官方文档示例5.资源限制实操5.1 编写yaml资源配置清单5.2 释放内存&#xff08;node节点&#xff0c;以node1为例&#…

昨晚,我用python帮学妹P证件照自拍,然后发现。。。

人生苦短&#xff0c;我用Python前因后果先上效果准备工作证件照尺寸调整证件照背景调整各种背景颜色图片完整代码结尾最后前因后果 事情是这样的 晚上我正在聚精会神写代码&#xff08;打游戏~&#xff09; 突然&#xff0c;收到学妹给我发来的消息 还有一张自拍照 而且是…

基于stm32单片机的超声波测距显示倒车雷达提醒报警系统Proteus仿真

资料编号&#xff1a;145 下面是相关功能视频演示&#xff1a; 145-基于stm32单片机的超声波测距显示倒车雷达提醒报警系统Proteus仿真&#xff08;源码原理图仿真论文&#xff09;设计内容 本次嵌入式课程设计综合实验的内容为倒车测距系统。以proteus keilU5为模拟硬件基础…

Android studio中控件TextView学习

1、TextView 基础属性 layout_ width; 组件的宽度layout. _height: 组件的高度id: 为TextView设置- -个组件idtext; 设置显示的文本内容textColor: 设置字体颜色textStyle: 设置字体风格&#xff0c;三个可选值: n normal(无效果)&#xff0c;bold(加粗)&#xff0c; italic(斜…

Springboot @Async 失效的坑

异步应用场景 为了提高接口的响应性能&#xff0c;当业务非常复杂的情况下&#xff0c;可以将一部分跟业务关联性不是特别强的逻辑进行异步处理。如日志记录、短信发送、增加积分等。通常而言会将此类业务逻辑通过异步的方式进行处理&#xff0c;从而加快接口的响应速度&#…

【HMS Core】集成多种HMS Core服务,让APP成为旅行小助手

1 介绍 Duration: 5:00 总览 旅行者能够使用该应用在华为地图上搜索附近名胜景点、游玩去处或是附近ATM、餐馆和医院等。 服务场景描述 Tourism应用通过集成机器学习服务的地标识别能力&#xff0c;能够提供旅行过程所有必要的信息&#xff0c;还可以识别图片中的地标建筑。…

[Python]字符串常用操作与方法

前言 系列文章目录 [Python]目录 文章目录前言1. 字符串的常用操作1.1 格式化输出1.1.1 %1.1.1.1 语法1.1.1.2 字符串格式操作符(%)的格式化符号%c&#xff1a;以字符的形式格式化输出整数或长度为1的字符串%r&#xff1a;将数据格式化为供解释器读取的形式%s&#xff1a;将数据…

一文带你精通Git

一文带你精通git回顾git对象树对象提交对象重新认识git 基本命令git 高层命令分支&#xff08;特别重要&#xff09;分支冲突&分支合并git 存储git 后悔药远程分支和团队协作远程仓库冲突回顾 博主之前直接已经写过了git的相关基础博客了,老铁可以自行去查看。本篇文章的目…

【分割链表】

目录&#xff1a;前言一、题目描述二、算法思想&#xff08;一&#xff09;值交换1、题目解析2、代码实现&#xff08;二&#xff09;重构链表1、题目解析2、代码实现总结前言 大家好&#xff0c;今天我们来了解一下leetcode中比较简单的单链表问题。 一、题目描述 题目描述如…

MySQL事务隔离级别

MySQL的四种隔离级别 读未提交读提交可重复读串行化 隔离级别可以通过MySQL的视图来实现。 读未提交 读未提交是一个事务仅修改了数据但还未提交时&#xff0c;本次修改可以便可被其他事务查询到变更后的值。读未提交隔离级别下&#xff0c;其他事务进行查询时&#xff0c;直…

新手小白学JAVA 日期类Date SimpleDateFormat Calendar

Date日期类 类 Date 表示一个特定的瞬间&#xff0c;精确到毫秒 1.1 Date的构造函数 Date() 分配一个 Date 对象&#xff0c;以表示分配它的时间&#xff08;精确到毫秒&#xff09; Date(long date) 分配一个 Date 对象&#xff0c;表示自从标准基准时间起指定时间的毫秒数 标…

【Java实验五】继承与多态

一、实验一 对于父类的含参构造方法&#xff0c;子类必须通过super调用&#xff0c;重写父类的构造方法 设计一个应用程序要求&#xff1a; 设计一个表示二维平面上点的类Point&#xff0c;包含有表示坐标位置的protected类型的成员变量x和y&#xff0c;获取和设置x和y值的publ…

SpringBoot项目的创建(三):手动创建一个Maven工程,然后引入SpringBoot所需的dependency来完成 (不需联网,但复杂)

SpringBoot项目的创建1.配置Maven环境。2.创建一个新的maven项目3.创建出来的目录结构4 继承springboot父项目5.添加Spring Boot Maven插件6.添加spring和web模块的依赖7.创建入口类8.添加代码测试1.配置Maven环境。 在以maven方式创建Spring Boot项目之前&#xff0c;需要先确…

交换网络基础

交换网络基础网络基础交换机的转发行为数据帧分类交换机MAC地址表ping包来回过程VLAN概念&#xff1a;VLAN接口类型ICMP返回值网络基础 路由器&#xff1a;基于3层路由表转发交换机&#xff1a;基于2层MAC地址表转发&#xff0c;数据帧转发 交换机的转发行为 泛洪&#xff1…

Buffer Pool Size of Total RAM No data

1.问题描述 1)问题现象 通过prometheus监控mysql实例和服务器&#xff0c;使用grafana做可视化展示&#xff0c;grafana 中添加 7362 号dashboard 作为mysql看板&#xff0c;添加 11074 号dashboard 作为主机看板。但是添加后查看 MySQL Overview 看板发现 Buffer Pool Size …

Python制作GUI学生管理系统毕设,大学生总会用得到

有很多可爱的大学生跟我吐槽&#xff1a; 咋这个大学跟我想象的不一样呢&#xff1f; 老师叫我们自己做… 还是那句话&#xff0c;技术才是硬道理 源码、资料电子书文末名片获取 有个经典案例就是 学生管理系统 写完了放在那也是放着&#xff0c;所以今天分享给大家吧&…