配置Tomcat性能优化

news2024/11/15 12:10:31

配置Tomcat性能优化

📒博客主页: 微笑的段嘉许博客主页

💻微信公众号:微笑的段嘉许

🎉欢迎关注🔎点赞👍收藏⭐留言📝

📌本文由微笑的段嘉许原创!

📆CSDN首发时间:🌴2022年2月日20🌴

✉️坚持和努力一定能换来诗与远方!

🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

本文介绍

保姆级教程通过一个综合实验案例手把手教你Tomcat的安装配置与性能优化。


📌导航小助手📌

文章目录

  • 配置Tomcat性能优化
  • 📝理论讲解:
    • 详细介绍
    • 名称由来
  • 📖实验配置与实现:
  • 一、Centos02安装DNS解析www.duan.com,www.jia.com,www.xu.com访问网站客户端访问验证
    • 1、配置网卡服务
    • 2、安装DNS服务
    • 3、修改DNS配置文件
  • 二、Centos02安装tomcat发布动态网站jpress使用www.duan.com访问,配置虚拟主机通过www.jia.con和www.xu.com访问不同的虚拟主机
    • 1、部署tomcat
    • 2、tomcat发布动态网站
    • 3、配置tomcat虚拟主机
  • 三、tomcat性能优化
    • 1、配置tomcat管理控制台监控线程和tomcat的工作模式
    • 2、优化tomcat线程
    • 3、JVM性能调优
    • 4、jmeter压力测试

📝理论讲解:

详细介绍

​ Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。

​ Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

​ 诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.23。

名称由来

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


📖实验配置与实现:

推荐步骤:

Centos02安装DNS解析www.duan.com,www.jia.com,www.xu.com访问网站客户端访问验证

Cenros01安装tomcat发布动态网站jpress使用www.duan.com访问,配置虚拟主机通过www.jia.com和www.xu.com访问不同的虚拟主机

tomcat性能优化

一、Centos02安装DNS解析www.duan.com,www.jia.com,www.xu.com访问网站客户端访问验证

1、配置网卡服务

1)配置IP地址和DNS

[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32			//进入网卡配置文件
[root@centos02 ~]# systemctl restart network				//重新启动网卡服务
[root@centos02 ~]# cat /etc/resolv.conf 			//查看DNS配置是否生效
# Generated by NetworkManager
nameserver 192.168.100.20

image-20230218190509098

2、安装DNS服务

1)挂载系统光盘

[root@centos02 ~]# mount /dev/cdrom /mnt/			//挂载系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载	
[root@centos02 ~]# ls /mnt/				//查看系统光盘是否挂载成功
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

2)安装DNS程序包

[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm 
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:bind-32:9.9.4-50.el7             ################################# [100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm 
警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:bind-chroot-32:9.9.4-50.el7      ################################# [100%]

3、修改DNS配置文件

1)修改DNS主配置文件

[root@centos02 ~]# echo "" > /etc/named.conf 			//清空DNS主配置文件
[root@centos02 ~]# vim /etc/named.conf			//进入DNS主配置文件
---
options {
        listen-on port 53 { any ;};
};
zone "duan.com" IN {
        type master;
        file "var/named/duan.com.zone";
};
zone "jia.com" IN {
        type master;
        file "var/named/jia.com.zone";
};
zone "xu.com" IN {
        type master;
        file "var/named/xu.com.zone";
};
---
[root@centos02 ~]# named-checkconf /etc/named.conf				//检查主配置文件修改是否有误

image-20230218190635153

2)修改第一个DNS区域配置文件

[root@centos02 ~]# vim /var/named/duan.com.zone			//进入第一个DNS区域配置文件
---
$TTL            86400
@               SOA             duan.com.		root.duan.com. (
                2023021710
                1H
                15M
                1W
                1D
)
@               NS              centos02.duan.com.
centos02        A               192.168.100.20
www             A               192.168.100.10
---
[root@centos02 ~]# vim /var/named/duan.com.zone
[root@centos02 ~]# named-checkzone duan.com /var/named/duan.com.zone
zone duan.com/IN: loaded serial 2023021710
OK				//检查主配置文件修改是否有误

image-20230218190700105

3)修改第二个DNS区域配置文件

[root@centos02 ~]# cp /var/named/duan.com.zone /var/named/jia.com.zone			//复制第一个区域配置文件到/var/namedjia.com.zone
[root@centos02 ~]# vim /var/named/jia.com.zone 			//进入第二个区域配置文件
---
:%s/duan.com/jia.com/g			//把duan.com替换为jia.com
$TTL            86400
@               SOA             jia.com.        root.jia.com. (
                2023021710
                1H
                15M
                1W
                1D
)
@               NS              centos02.jia.com.
centos02        A               192.168.100.20
www             A               192.168.100.10
---
[root@centos02 ~]# named-checkzone jia.com /var/named/jia.com.zone			//检查主配置文件修改是否有误
zone jia.com/IN: loaded serial 2023021710
OK

image-20230218190732278

4)修改第三个DNS区域配置文件

[root@centos02 ~]# cp /var/named/duan.com.zone /var/named/xu.com.zone			//复制第一个区域配置文件到/var/named/xu.com.zone
[root@centos02 ~]# vim /var/named/xu.com.zone			//进入第三个区域配置文件
---
:%s/duan.com/xu.com/g			//把duan.com替换为xu.com
$TTL            86400
@               SOA             xu.com. root.xu.com. (
                2023021710
                1H
                15M
                1W
                1D
)
@               NS              centos02.xu.com.
centos02        A               192.168.100.20
www             A               192.168.100.10
---
[root@centos02 ~]# named-checkzone xu.com /var/named/xu.com.zone
zone xu.com/IN: loaded serial 2023021710
OK

image-20230218190902841

5)启动DNS服务设置开机自启

[root@centos02 ~]# systemctl start named				//启动DNS服务
[root@centos02 ~]# systemctl enable named			//设置开机自启
[root@centos02 ~]# netstat -anptu | grep named			//监听端口
tcp        0      0 192.168.100.20:53       0.0.0.0:*               LISTEN      40870/named         
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      40870/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      40870/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      40870/named         
udp        0      0 192.168.122.1:53        0.0.0.0:*                           40870/named         
udp        0      0 192.168.100.20:53       0.0.0.0:*                           40870/named         
udp        0      0 127.0.0.1:53            0.0.0.0:*                           40870/named

二、Centos02安装tomcat发布动态网站jpress使用www.duan.com访问,配置虚拟主机通过www.jia.con和www.xu.com访问不同的虚拟主机

1、部署tomcat

1)解压源代码程序

[root@centos01 ~]# rz			//上传tomcat源代码程序
z waiting to receive.**B0100000023be50
[root@centos01 ~]# ls			//查看是否上传成功
anaconda-ks.cfg              initial-setup-ks.cfg  模板  图片  下载  桌面
apache-tomcat-8.5.50.tar.gz  公共                  视频  文档  音乐
---
[root@centos01 ~]# tar zxf ./apache-tomcat-8.5.50.tar.gz -C /usr/src/			//解压tomcat源代码程序
[root@centos01 ~]# mv /usr/src/apache-tomcat-8.5.50/ /usr/local/tomcat			//剪切tomcat源代码程序到/usr/local/tomcatm目录

2)修改tomcat主配置文件

[root@centos01 ~]# vim /usr/local/tomcat/conf/server.xml			//进入tomcat主配置文件
---
73     <Connector port="80" protocol="HTTP/1.1"			//监听80端口
 74                connectionTimeout="20000"
 75                redirectPort="8443" />
152       <Host name="www.duan.com"  appBase="webapps"			//域名和网站根目录
153             unpackWARs="true" autoDeploy="true">
154         <Valve className="org.apache.catalina.valves.AccessLogValve" directo    ry="logs"
155                prefix="www.duan.com_access_log" suffix=".txt"
156                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
157       </Host>
---
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh 			//启动tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java			//监听端口
tcp6       0      0 :::80                   :::*                    LISTEN      40414/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      40414/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      40414/java

image-20230218191226512

image-20230218191229380

3)使用win10虚拟机验证访问tomcat默认网站

image-20230218191310493

2、tomcat发布动态网站

1)上传项目到tomcat的根目录

[root@centos01 ~]# cd /usr/local/tomcat/webapps/			//切换到tomcat根目录
[root@centos01 webapps]# rz			//上传项目
z waiting to receive.**B0100000023be50
[root@centos01 webapps]# ls			//查看是否上传成功
docs  examples  host-manager  jpress-v5.0.8.war  manager  ROOT
[root@centos01 webapps]# mv jpress-v5.0.8.war jpress.war			//重命名
[root@centos01 webapps]# ls 		//查看
docs  examples  host-manager  jpress  jpress.war  manager  ROOT

2)安装数据库

[root@centos01 ~]# mount /dev/cdrom /mnt/			//挂在系统光盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/				//查看光盘是否挂载成功
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*			//删除系统自带的yum源
[root@centos01 ~]# ls /etc/yum.repos.d/			//查看本地yum源目录
local.repo
[root@centos01 ~]# cat /etc/yum.repos.d/local.repo 			//查看本地yum源
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0
---
[root@centos01 ~]# yum -y install mariadb mariadb-server			//安装数据库
[root@centos01 ~]# systemctl start mariadb			//启动数据库
[root@centos01 ~]# systemctl enable mariadb			//设置开机自启
[root@centos01 ~]# mysqladmin -uroot password			//创建管理数据库账户名为root,设置密码
New password: 							//输入密码
Confirm new password:					//确定密码
[root@centos01 ~]# mysql -uroot -ppwd@123			//登录数据库
MariaDB [(none)]> create database jpress charset utf8;			//创建数据库名字支持中文
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on jpress.* to 'duanjiaxu'@'localhost' identified by 'pwd@123';			//授权用户访问,授权用户为duanjaixu密码为pwd@123
Query OK, 0 rows affected (0.00 sec)

image-20230218191511125

3)在win10客户端安装jdk

image-20230218191534757

image-20230218191539782

等待安装完成:

image-20230218191556901

4)使用win10虚拟机验证

image-20230218191746933

image-20230218191709783

image-20230218191808335

image-20230218191833875

image-20230218191843670

3、配置tomcat虚拟主机

1)创建虚拟主机网站根目录

[root@centos01 ~]# mkdir -p /www/jia			//创建虚拟网站根目录
[root@centos01 ~]# mkdir -p /www/xu
[root@centos01 ~]# echo "www.jia.com" > /www/jia/index.jsp			//设置网站主页
[root@centos01 ~]# echo "www.xu.com" > /www/xu/index.jsp

2)修改tomcat主配置文件

[root@centos01 ~]# vim /usr/local/tomcat/conf/server.xml			//进入tomcat主配置文件
---
152       <Host name="www.duan.com"  appBase="webapps"			//第一虚拟主机
153             unpackWARs="true" autoDeploy="true">
154         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
155                prefix="www.duan.com_access_log" suffix=".txt"
156                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
157       </Host>
158       <Host name="www.jia.com"  appBase="webapps"			//第二个虚拟主机
159             unpackWARs="true" autoDeploy="true">
160         <Context docBase="/www/jia/" path="" reloadble="fales"/>
161         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
162                prefix="www.duan.com_access_log" suffix=".txt"
163                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
164       </Host>
165       <Host name="www.xu.com"  appBase="webapps"			//第三个虚拟主机
166             unpackWARs="true" autoDeploy="true">
167         <Context docBase="/www/xu/" path="" reloadble="fales"/>
168         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
169                prefix="www.duan.com_access_log" suffix=".txt"
170                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
171       </Host>

image-20230218200024006

3)重新启动tomcat服务

[root@centos01 ~]# /usr/local/tomcat/bin/shutdown.sh 			//停止tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh 			//启动tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java			//监听网卡
tcp6       0      0 :::80                   :::*                    LISTEN      41936/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      41936/java

4)使用win10虚拟机验证

image-20230218200231194

三、tomcat性能优化

1、配置tomcat管理控制台监控线程和tomcat的工作模式

1)修改访问tomcat管理控制台

[root@centos01 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml			//进入tomcat管理控制台配置文件
---
44   <role rolename="manager-gui"/>
 45   <role rolename="manager-script"/>
 46   <role rolename="manager-jmx"/>
 47   <role rolename="manager-status"/>
 48   <role rolename="admin-gui"/>
 49   <role rolename="admin-script"/>
 50   <user username="admin" password="pwd@123" roles="manager-gui,manager-scrip    t,manager-jmx,manager-status,admin-gui,admin-script"/>			//创建用户名和设置密码,授权角色
 51 </tomcat-users>
---
[root@centos01 ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml				//进入访问控制配置文件
---
 18 <Context antiResourceLocking="false" privileged="true" >
 19   <Valve className="org.apache.catalina.valves.RemoteAddrValve"
 20          allow="192\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />			//修改为192
 21   <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Inte    ger|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter    \$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
 22 </Context>
---
[root@centos01 ~]# /usr/local/tomcat/bin/shutdown.sh 			//停止tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh 			//启动tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java			//监听网卡服务
tcp6       0      0 :::80                   :::*                    LISTEN      42514/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      42514/java 

image-20230218200353361

2)使用win10虚拟机验证

image-20230218200429978

image-20230218200412504

image-20230218200436528

2、优化tomcat线程

1)修改tomcat主配置文件

[root@centos01 ~]# vim /usr/local/tomcat/conf/server.xml			//进入tomcat主配置文件
---
 73     <Connector port="80" protocol="HTTP/1.1"
 74                connectionTimeout="20000"			//连接请求超时时间20000毫秒
 75                redirectPort="8443" 			//加密端口
 76                maxTheads="15000"			//最大线程15000
 77                minspareTheads="2000"			//最下空闲线程2000
 78                acceptCount="2000"			//列队保存2000个请求,拉长请求时间
 79 /> 

image-20230218200508920

3、JVM性能调优

1)设置虚拟机的内存为4GB

image-20230218200538905

2)修改最大内存

[root@centos01 ~]# vim /usr/local/tomcat/bin/catalina.sh			//进入配置文件
---
JAVA_OPTS="-server -Xms1024m -Xmx4096m -XX:NewSize=50m -XX:MaxNewSize=100m"
---
[root@centos01 ~]# /usr/local/tomcat/bin/shutdown.sh 			//停止tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@centos01 ~]# /usr/local/tomcat/bin/startup.sh 			//启动tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@centos01 ~]# netstat -anptu | grep java			//监听网卡服务
tcp6       0      0 :::80                   :::*                    LISTEN      45095/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      45095/java

2)使用win10虚拟机验证

JVM性能优化前:

image-20230218200639350

JVM性能优化后:

4、jmeter压力测试

1)在win10虚拟机上安装jmeter压力测试工具

image-20230218200800868

image-20230218200740700

配置压力测试的服务器域名和端口号、协议、路径

image-20230218200823835

配置线程数

image-20230218200838731

异常百分之零

image-20230218200849467


🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!

img

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

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

相关文章

常用类(五)System类

(1)System类常见方法和案例&#xff1a; &#xff08;1&#xff09;exit:退出当前程序 我们设计的代码如下所示&#xff1a; package com.ypl.System_;public class System_ {public static void main(String[] args) {//exit: 退出当前程序System.out.println("ok1"…

详解C++的类型转换

文章目录前言一、C语言中的类型转换二、为什么C需要四种转换三、C强制类型转换3.1 static_cast3.2 reinterpret_cast3.3 const_cast3.4 dynamic_cast四、RTTI总结前言 在C语言的类型转换有一个非常大的坑,有好多悄悄地转换,有时候把我们转换的就蒙了,因为C要兼容C语言,所以C就…

docker容器单机网络

前言 通过文章 容器的本质可知&#xff0c;容器只是一个进程&#xff0c;而容器所能看到的网络栈&#xff0c;是隔离在自己的 Network Namespace 中。docker 容器单机网络支持四种网络模式&#xff0c;也都是基于 Network Namespace 实现的。本文主要是介绍这四种模式的使用方…

四、actions处理异步行为和调用

四、actions处理异步行为和调用 action&#xff1a;装方法的一个对象。 使用场景&#xff1a;在Vuex运行的环节中&#xff0c;有异步操作——>就必须经过action mutations不能进行异步操作。 最常用的案例&#xff1a;异步请求获取数据 使用方式&#xff1a; 组件中使用a…

移动WEB开发一、基础知识

零、文章目录 文章地址 个人博客-CSDN地址&#xff1a;https://blog.csdn.net/liyou123456789个人博客-GiteePages&#xff1a;https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee&#xff1a;https://gitee.com/bluecusliyou/TechLearnGithub&#xff1a;https:…

git ssh配置

ssh配置 执行以下命令进行配置 git config --global user.name “这里换上你的用户名” git config --global user.email “这里换上你的邮箱” 执行以下命令生成秘钥&#xff1a; ssh-keygen -t rsa -C “这里换上你的邮箱” 执行命令后需要进行3次或4次确认。直接全部回车就…

基于 ChatGPT 3.5 和 Bing 搜索引擎的会话式搜索引擎 Perplexity 初体验

一、背景 最近 ChatGPT 非常火爆&#xff0c;但是基础版经常访问失败&#xff0c;于是乎想找一些替代品。 搜到了一个 基于 ChatGPT 3.5 和 Bing 搜索的会话式搜索引擎 Perplexity 体验了下非常不错&#xff0c;值得推荐。 二、联系和区别 2.1 联系 官网在外媒社交媒体上…

三、NetworkX工具包实战3——特征工程【CS224W】(Datawhale组队学习)

开源内容&#xff1a;https://github.com/TommyZihao/zihao_course/tree/main/CS224W 子豪兄B 站视频&#xff1a;https://space.bilibili.com/1900783/channel/collectiondetail?sid915098 斯坦福官方课程主页&#xff1a;https://web.stanford.edu/class/cs224w NetworkX…

【安卓开发】安卓广播机制

读书笔记系列&#xff08;第一行代码&#xff09; 5.1 广播机制简介 标准广播&#xff1a;完全异步执行&#xff0c;广播发出后&#xff0c;所有广播接收器几乎都同一时刻收到这条广播&#xff08;无法被截断&#xff09;有序广播&#xff1a;同步执行&#xff0c;广播发出后…

优秀!19年后,它再次成为TIOBE年度编程语言

新年伊始&#xff0c;TIOBE发布了2022年度编程语言&#xff0c;C时隔19年再度登顶&#xff0c;成为2022年最受欢迎的编程语言。TIOBE在2003年首次统计编程语言的流行指数时&#xff0c;C便成为年度编程语言。2022年&#xff0c;C获得了最高的人气4.62%&#xff0c;紧随其后的是…

maven打包顺序与jvm类加载顺序

背景&#xff1a;一次dev测试过程中&#xff0c;发现代码中关于jsr303的校验失效&#xff0c;校验类如下&#xff0c;会报一个莫名其妙的运行时错误&#xff1b;遂进行排查。import javax.validation.constraints.NotBlank;Data Accessors(chain true) public class Demo {Not…

为什么会有跨域问题,代理是怎么解决的?

&#x1f4d6; 文章导航关于跨域问题同源策略跨域资源共享解决方案前端代理后端服务端代理关于跨域问题 同源策略 同源策略&#xff08;Same-origin policy&#xff09;是浏览器中一个重要的安全策略&#xff0c;它用于限制不同源之间的资源交互。其目的是为了帮助阻隔恶意文…

由浅入深,一起来刷Java高级开发岗面试指南,面试必定无忧!

前言 我只想面个CV工程师&#xff0c;面试官偏偏让我挑战造火箭工程师&#xff0c;加上今年这个情况更是前后两男&#xff0c;但再难苟且的生活还要继续&#xff0c;饭碗还是要继续找的。在最近的面试中我一直在总结&#xff0c;每次面试回来也都会复盘&#xff0c;下面是我根…

Dubbo之SpringBoot启动源码详解

需要前置知识&#xff0c;了解spring源码&#xff0c;springboot自动加载机制等 DubboBootstrap启动 详细信息可看 学习Dubbo源码需要了解的基础内容源码详解 DubboBootstrap 启动所需要的信息 添加应用程序配置添加注册中心配置添加协议配置添加服务配置启动 SpringBoot启…

广东MES系统实施过程中的要点和难点

MES系统已经成为企业目前实施的焦点。但是MES系统又分为很多的种类&#xff0c;对企业之间则是很难选择的&#xff0c;因为大部分的企业对MES系统的要点和难点并不清楚&#xff0c;而今天就让先达盈致的小编带大家了解一下广东MES系统实施过程中的要点和难点。MES系统是实现企业…

戴尔T5810电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。硬件型号驱动情况主板戴尔T5810&#xff0c;C610/612芯片处理器英特尔至强E5-2620 v3已驱动内存12 GB已驱动硬盘500GB WD Blue Solid State Drive & 2TB Seagate Mobile Hard Drive (Upgraded)已驱动显卡RX 570 4Gb已驱…

october-cms

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;3e4s 虚拟机网络链接模式&#xff1a;桥接模式 攻击机系统&#xff1a;kali linux 2021.1 信息收集 1.探测目标靶机ip。 2.探测靶机开放端口和服务情况。 漏洞探测 1.访问网页 2.用dirsearch扫描…

用javascript分类刷leetcode15.链表(图文视频讲解)

链表操作如下图&#xff1a; 动画过大&#xff0c;点击查看 时间复杂度&#xff1a; prepend: O(1)append: 如果已知尾节点O(1)&#xff0c;否则需要遍历到尾节点&#xff0c;然后加入新节点O(n)insert: 插入到已知节点的后面O(1)&#xff0c;需要先查找后插入O(n)lookup: O…

【STM32笔记】__WFI();进入不了休眠的可能原因

【STM32笔记】__WFI();进入不了休眠的可能原因 【STM32笔记】低功耗模式配置及避坑汇总 前文&#xff1a; blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置&#xff08;ADC唤醒无法使用、低功耗模式无法烧录解决方案&#xff09;…

Outlook邮箱注册教程 不信你看完还不懂

Outlook作为Microsoft Office家族的办公软件套装之一&#xff0c;关联着很多微软的其他产品。而且Outlook是欧美地区认可度比较高的&#xff0c;不仅可以用于一些境外联络还可以拿来注册Instagram、Twitter、Facebook等各种社交媒体平台。龙哥在这里就给大家出一份详细的Outloo…