Day 40 Web容器-Tomcat

news2024/12/24 8:11:02

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.sh
    2.直接执行/usr/local/tomcat/bin/catalina.sh start
关闭tomcat的方法:
    1.直接执行/usr/local/tomcat/bin/shutdown.sh
    2.直接执行/usr/local/tomcat/bin/catalina.sh stop
 
 在/usr/bin/目录下创建一个脚本tomcat来对其进行便捷管理,可以在任何目录下调用这个脚本
 
 方案一:通过tomcat start 或 tomcat stop 来打开或关闭tomcat
 cat /usr/bin/tomcat
 #!/usr/bin/bash
 /usr/local/tomcat/bin/catalina.sh $1
 
 方案二:通过tomcat start,tomcat stop和tomcat restart 来打开,关闭或重启tomcat
 cat /usr/bin/tomcat
 #!/usr/bin/bash
 case $1 in

 start)
 /usr/local/tomcat/bin/startup.sh
 ;;

 stop)
 /usr/local/tomcat/bin/shutdown.sh 
 ;;

 restart)
 /usr/local/tomcat/bin/shutdown.sh
 sleep 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生成被零除警告,但操作结果为NULL

NO_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 $1

2.给tomcat文件加执行权限

[root@tomcat ~]# chmod a+x tomcat

3.把tomcat放到/usr/bin目录下

[root@tomcat ~]# mv tomcat /usr/bin

4.使用

[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"   //修改8080
               connectionTimeout="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.sh
        sleep 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.coloradmin.cn/o/1704308.html

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

相关文章

JVM(内存区域划分、类加载机制、垃圾回收机制)

目录 一. 内存区域划分 1.本地方法栈(Native Method Stacks) 2.虚拟机栈(JVM Stacks) 3.程序计数器(Program Counter Register) 4.堆(Heap) 5.元数据区(Metaspace) 二.类加载机制 1.加载 2.验证 3.准备 4.解析 5.初始化 "双亲委派模型" 三. GC 垃圾回收…

[自动驾驶技术]-7 Tesla自动驾驶方案之算法(AI Day 2022)

特斯拉在2022年AI Day上更新了感知规控算法模型&#xff0c;核心引入了Occupancy技术。下图是特斯拉活动日展示的主题内容&#xff0c;本文主要解读Planning和Neural Network部分。 1 规划决策 Interaction search-交互搜索 特斯拉在自动驾驶规划中使用了一种高度复杂和优化的…

SpringCloud整合Seata1.5.2

Windows下部署Seata1.5.2可参照博文&#xff1a;Windows下部署Seata1.5.2&#xff0c;解决Seata无法启动问题-CSDN博客 1. 引入依赖 <!-- 分布式事务 --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-st…

echarts配置记录,一些已经废弃的写法

1、normal&#xff0c;4.0以后无需将样式写在normal中了 改前&#xff1a; 改后&#xff1a; DEPRECATED: normal hierarchy in labelLine has been removed since 4.0. All style properties are configured in labelLine directly now. 2、axisLabel中的文字样式无需使用te…

近五年营收和净利润大幅“败北”,尚品宅配今年押注扩张加盟

​ 《港湾商业观察》廖紫雯 两个月前经历过高管公开信的尚品宅配&#xff08;300616.SZ&#xff09;&#xff0c;无论是2023年年报&#xff0c;还是今年一季报&#xff0c;虽然公司净利润表现尚佳&#xff0c;但收入端的持续承压仍然备受关注。 今年一季报&#xff0c;尚品宅…

Mac免费软件推荐

1. iTerm2 - 功能强大的终端 iTerm2 是一个功能强大且灵活的终端仿真器&#xff08;可替代系统默认终端&#xff09;&#xff0c;适合需要在 macOS 上进行大量终端操作的用户。其丰富的功能和高可定制性使得 iTerm2 成为许多开发者和系统管理员的首选工具。无论是处理多个会话…

RabbitMQ 之 死信队列

目录 ​编辑一、死信的概念 二、死信的来源 三、死信实战 1、代码架构图 2、消息 TTL 过期 &#xff08;1&#xff09;消费者 &#xff08;2&#xff09;生产者 &#xff08;3&#xff09;结果展示​编辑 3、队列达到最大长度 &#xff08;1&#xff09;消费者 &…

百度发布代码辅助工具,超强

不会用AI的程序员&#xff0c;会跟不会用智能手机的人一样 百度这个代码助手助手感觉还是不错的 https://comate.baidu.com/?inviteCodeijmce7dj 目前看下来这个代码助手是比较强的&#xff0c;比阿里的那个灵码好用&#xff0c;他可以引用到当前的文件&#xff0c;并且能分…

Spring Cache基本使用

Spring 从 3.1 版本开始定义缓存抽象来统一不同的缓存技术&#xff1b;在应用层面与后端存储之间&#xff0c;提供了一层抽象&#xff0c;这层抽象目的在于封装各种可插拔的后端存储( ehcache, redis, guava)&#xff0c;最小化因为缓存给现有业务代码带来的侵入。 一、Spring…

DRKCT复现

Osint 羡慕群友每一天 MISC 签到 扫码关注公众号&#xff0c;回复一下行 &#xff08;眼神要好&#xff0c; 我做题时没看见有个二维码&#xff09; 神秘的文字 把代码js运行一下 (用js的原因是前面给的动物代表的字符类似jsfuck代码) &#x13142;![]; &#x13080;!…

Daisy Chain

菊花链是双向和半双工的&#xff0c;因此在 COMH 和 COML 接口上有一个发送器 (TX) 和一个接收器 (RX)。TX 和 RX 功能由硬件根据器件的基底/堆栈检测自动控制。当接收到 WAKE ping/音调时&#xff0c;通信方向由 CONTROL1[DIR_SEL] 和 COMM_CTRL[TOP_STACK] 配置进行设置。 对…

如何处理网安发出的网络安全监督检查限期整改通知

近期&#xff0c;很多客户都收到了网安发出的限期整改通知。大家都比较关心的问题是&#xff0c;如何应对处理这些限期整改通知。后续是否有其他的影响&#xff0c;需要如何做进一步的优化整改和调整。今天就这些问题给大家做一些分享。 一. 为什么会有网安的网络安全检查 主…

系统管理、磁盘分区

系统管理 业务层面&#xff1a;为了满足一定的需求所做的特定操作。 硬盘是什么&#xff0c;硬盘的作用&#xff1a; **硬盘&#xff1a;**计算机的存储设备&#xff0c;机械硬盘是由一个或者多个磁性的盘组成&#xff0c;可以在盘片上进行数据的读写。 连接方式&#xff1a…

谈谈BlueStore的BitmapAllocator

背景 BlueStore在ceph里面承担了数据在底层磁盘上的读写任务&#xff0c;那它的功能里自然就有一块是管理磁盘空间使用的。说白了&#xff0c;就是记录&管理磁盘里哪些空间已经使用了&#xff0c;哪些空间还没有被使用。 目前官方的ceph里使用BitmapAllocator来管理磁盘空…

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

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

C++ 数据结构算法 学习笔记(33) -查找算法及企业级应用

C 数据结构算法 学习笔记(33) -查找算法及企业级应用 数组和索引 日常生活中&#xff0c;我们经常会在电话号码簿中查阅“某人”的电话号码&#xff0c;按姓查询或者按字母排 序查询&#xff1b;在字典中查阅“某个词”的读音和含义等等。在这里&#xff0c;“电话号码簿”和…

高弹性架构的微服务设计模式

长期以来&#xff0c;开发人员一直使用单片架构&#xff0c;而且长期以来&#xff0c;这种架构一直有效。不幸的是&#xff0c;这些架构使用的部件较少&#xff0c;但体积较大&#xff0c;这意味着如果一个部件发生故障&#xff0c;它们更有可能整体失效。通常&#xff0c;这些…

《书生·浦语大模型实战营》第1课 学习笔记:书生·浦语大模型全链路开源体系

文章大纲 1. 简介与背景智能聊天机器人与大语言模型目前的开源智能聊天机器人与云上运行模式 2. InternLM2 大模型 简介3. 视频笔记&#xff1a;书生浦语大模型全链路开源体系内容要点从模型到应用典型流程全链路开源体系 4. 论文笔记:InternLM2 Technical Report简介软硬件基础…

HR招聘面试测评,哪些工作岗位需要测评创新能力?

什么是创新能力&#xff1f; 创新能力指在现有的物质基础上&#xff0c;通过某些特定的条件&#xff0c;促成满足未来社会发展的新事物。无论是个人还是国家都需要巨大的创新能力&#xff0c;因为创新是一切发展的根基&#xff0c;离开了创新&#xff0c;所有的发展都是原地踏…

Windows安全基础——Windows WMI详解

Windows安全基础——WMI篇 1. WMI简介 WMI&#xff08;Windows Management Instrumentation, Windows管理规范&#xff09;是Windows 2000/XP管理系统的核心&#xff0c;属于管理数据和操作的基础模块。设计WMI的初衷是达到一种通用性&#xff0c;通过WMI操作系统、应用程序等…