源码安装LAMT架构

news/2024/4/30 10:28:17/文章来源:https://blog.csdn.net/mushuangpanny/article/details/126649295

LAMT架构

文章目录

    • LAMT架构
      • 1. lamt
        • 1.1 提供软件包
      • 2. 源码安装httpd
        • 2.1 创建Apache用户,安装开发工具包,依赖包
        • 2.2 编译安装apr,apr-util, apache
        • 2.3 设置环境变量,文档,头文件
        • 2.4 关闭防火墙和selinux
        • 2.5 配置service file
        • 2.6 访问
      • 3. MySQL的二进制安装
        • 3.1 安装依赖包,创建用户,并解压
        • 3.2 修改属主
        • 3.3 配置环境变量,man文档,lib库,头文件
        • 3.4 建立数据存放目录,并修改属主
        • 3.5 初始化数据库,并保存密码
        • 3.6 生成配置文件
        • 3.7 配置服务启动脚本
        • 3.8 配置service文件,设置开机自启
        • 3.9 启动,设置密码
      • 4. 安装Tomcat
        • 4.1 安装java环境
        • 4.2 tomcat部署
        • 4.3 启动
        • 4.4 访问
        • 4.5 修改tomcat配置文件
        • 4.6 出现403拒绝访问,修改文件
        • 4.7 先停止,在启动
      • 5. 配置Apache
        • 5.1 启动代理模块
        • 5.2 创建虚拟主机,并重启
        • 5.3 访问

1. lamt

  • Apache,MySQL,Tomcat

1.1 提供软件包

[root@node4 files]# ls
apache-tomcat-9.0.65.tar.gz
apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz
httpd-2.4.54.tar.gz
mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
[root@node4 files]# 

2. 源码安装httpd

2.1 创建Apache用户,安装开发工具包,依赖包

[root@node4 ~]# useradd -r -M -s /sbin/nologin apache
[root@node4 ~]# yum -y groups mark install 'Development Tools'
[root@node4 ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make

2.2 编译安装apr,apr-util, apache

apr:
[root@node4 ~]# cd apr-1.7.0
[root@node4 apr-1.7.0]# vim configure
[root@node4 apr-1.7.0]# cat configure|grep cfgfilecfgfile=${ofile}Ttrap "$RM \"$cfgfile\"; exit 1" 1 2 15
#    $RM "$cfgfile"
[root@node4 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@node4 apr-1.7.0]# make
[root@node4 apr-1.7.0]# make installapr-util
[root@node4 apr-1.7.0]# cd ../apr-util-1.6.1
[root@node4 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@node4 apr-util-1.6.1]# make  
[root@node4 apr-util-1.6.1]# make installhttpd
[root@node4 apr-util-1.6.1]# cd ../httpd-2.4.54
[root@node4 httpd-2.4.54]# ./configure --prefix=/usr/local/apache \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util/ \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=prefork
[root@node4 httpd-2.4.54]# make 
[root@node4 httpd-2.4.54]# make install

2.3 设置环境变量,文档,头文件

[root@node4 ~]# cd /usr/local/apache/
[root@node4 apache]# ls
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
[root@node4 apache]# 环境变量
[root@node4 apache]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@node4 apache]# source /etc/profile.d/httpd.sh
[root@node4 apache]# man文档
[root@node4 apache]# vim /etc/man_db.conf 
[root@node4 apache]# cat /etc/man_db.conf |grep apache
MANDATORY_MANPATH                       /usr/local/apache/man
[root@node4 apache]# 头文件
[root@node4 apache]# ln -s /usr/local/apache/include /usr/include/apache
[root@node4 apache]#

2.4 关闭防火墙和selinux

[root@node4 ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node4 ~]# vim /etc/selinux/config 
[root@node4 ~]# setenforce 0
[root@node4 ~]# 

2.5 配置service file

[root@node4 ~]# cd /usr/lib/systemd/system
[root@node4 system]# cp sshd.service httpd.service 
[root@node4 system]# vim httpd.service 
[root@node4 system]# cat httpd.service 
[Unit]
Description=httpd server daemon
After=network.target sshd-keygen.target[Service]
Type=forking
ExecStart=/usr/local/apache/bin/apachectl start
ExecStop=/usr/local/apache/bin/apachectl stop
ExecReload=/bin/kill -HUP $MAINPID[Install]
WantedBy=multi-user.target
[root@node4 system]# systemctl daemon-reload
[root@node4 system]# 
[root@node4 ~]# systemctl start httpd
[root@node4 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@node4 ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*          
LISTEN 0      128             [::]:22           [::]:*          
LISTEN 0      128                *:80              *:*          
[root@node4 ~]# 

2.6 访问

在这里插入图片描述

3. MySQL的二进制安装

3.1 安装依赖包,创建用户,并解压

[root@node4 ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel ncurses-compat-libs
[root@node4 ~]# useradd -r -M -s /sbin/nologin mysql
[root@node4 ~]# cd files/
[root@node4 files]# tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

3.2 修改属主

[root@node4 ~]# cd /usr/local/
[root@node4 local]# ls
apache    etc      lib64                                share
apr       games    libexec                              src
apr-util  include  mysql-5.7.38-linux-glibc2.12-x86_64
bin       lib      sbin
[root@node4 local]# mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
[root@node4 local]# ls
apache  apr-util  etc    include  lib64    mysql  share
apr     bin       games  lib      libexec  sbin   src
[root@node4 local]# chown -R mysql.mysql mysql
[root@node4 local]# ll -d mysql
drwxr-xr-x 9 mysql mysql 129 Aug 31 23:14 mysql
[root@node4 local]# 

3.3 配置环境变量,man文档,lib库,头文件

[root@node4 mysql]# ls
LICENSE  bin   include  man    support-files
README   docs  lib      share
[root@node4 mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@node4 mysql]# source /etc/profile.d/mysql.sh[root@node4 mysql]# vim /etc/man_db.conf 
[root@node4 mysql]# cat /etc/man_db.conf |grep mysql
MANDATORY_MANPATH                       /usr/local/mysql/man
[root@node4 mysql]#[root@node4 mysql]# vim /etc/ld.so.conf.d/mysql.conf
[root@node4 mysql]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@node4 mysql]# ldconfig 
[root@node4 mysql]#[root@node4 mysql]# ln -s /usr/local/mysql/include /usr/include/mysql
[root@node4 mysql]# 

3.4 建立数据存放目录,并修改属主

[root@node4 ~]# mkdir -p /opt/data
[root@node4 ~]# chown -R mysql.mysql /opt/data
[root@node4 ~]# ll /opt/
total 0
drwxr-xr-x. 2 mysql mysql 6 Jul  5 18:37 data
[root@node4 ~]# 

3.5 初始化数据库,并保存密码

[root@node4 ~]# mysqld --initialize --user mysql --datadir /opt/data
2022-08-31T15:20:04.264947Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-08-31T15:20:04.577496Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-08-31T15:20:04.617721Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-08-31T15:20:04.623982Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 63bb9fd2-2940-11ed-ab4b-000c2939e984.
2022-08-31T15:20:04.626692Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-08-31T15:20:04.846540Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-08-31T15:20:04.846589Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-08-31T15:20:04.846996Z 0 [Warning] CA certificate ca.pem is self signed.
2022-08-31T15:20:04.919689Z 1 [Note] A temporary password is generated for root@localhost: Ad)*6qymaZmo
[root@node4 ~]# echo 'Ad)*6qymaZmo' > pass

3.6 生成配置文件

[root@node4 ~]# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]#
# include all files from the config directory
#
!includedir /etc/my.cnf.d[root@node4 ~]# > /etc/my.cnf
[root@node4 ~]# vim /etc/my.cnf
[root@node4 ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[root@node4 ~]#

3.7 配置服务启动脚本

[root@node4 ~]# cd /usr/local/mysql/support-files/
[root@node4 support-files]# ls
magic  mysql-log-rotate  mysql.server  mysqld_multi.server
[root@node4 support-files]# cp mysql.server mysqld
[root@node4 support-files]# vim mysqld
[root@node4 support-files]# chown -R mysql.mysql mysqld
[root@node4 support-files]# cat mysqld
basedir=/usr/local/mysql
datadir=/opt/data

3.8 配置service文件,设置开机自启

[root@node4 ~]# cd /usr/lib/systemd/system
[root@node4 system]# cp sshd.service mysqld.service 
[root@node4 system]# vim mysqld.service 
[root@node4 system]# cat mysqld.service 
[Unit]
Description=mysqld server daemon
After=network.target sshd-keygen.target[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysqld start
ExecStop=/usr/local/mysql/support-files/mysqld stop
ExecReload=/bin/kill -HUP $MAINPID[Install]
WantedBy=multi-user.target
[root@node4 system]# systemctl daemon-reload
[root@node4 system]# 

3.9 启动,设置密码

[root@node4 ~]# systemctl enable --now mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service 鈫� /usr/lib/systemd/system/mysqld.service.
[root@node4 ~]# ss -antl
State  Recv-Q  Send-Q   Local Address:Port   Peer Address:Port Process                                                        
LISTEN 0       128            0.0.0.0:22          0.0.0.0:*                                                                   
LISTEN 0       128            0.0.0.0:80          0.0.0.0:*                                                                   
LISTEN 0       128               [::]:22             [::]:*                                                                   
LISTEN 0       80                   *:3306              *:*                                                                   
[root@node4 ~]# cat pass 
Ad)*6qymaZmo
[root@node4 ~]# mysql -uroot -p'Ad)*6qymaZmo';
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.38Copyright (c) 2000, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> set password = password('run123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> quit
Bye
[root@node4 ~]# mysql -uroot -p'run123456';
mysql> quit
Bye
[root@node4 ~]# 

4. 安装Tomcat

4.1 安装java环境

[root@node4 ~]# dnf -y install java-17-openjdk*
[root@node4 ~]# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)
[root@node4 ~]# 

4.2 tomcat部署

[root@node4 ~]# cd files/
[root@node4 files]# tar xf apache-tomcat-9.0.65.tar.gz -C /usr/local/
[root@node4 files]# cd /usr/local/
[root@node4 local]# ls
apache                apr-util  games    lib64    sbin
apache-tomcat-9.0.65  bin       include  libexec  share
apr                   etc       lib      mysql    src
[root@node4 local]# mv apache-tomcat-9.0.65 tomcat
[root@node4 local]# 生成网页文件
[root@node4 ~]# cd /usr/local/tomcat/
[root@node4 tomcat]# 
[root@node4 tomcat]# mkdir test
[root@node4 tomcat]# cd test/
[root@node4 test]# ls
[root@node4 test]# vim index.jsp 
[root@node4 test]# cat index.jsp
<html>
<head>
<title>mushuang</title>
</head>
<body><%out.println("Hellow World");%>
</body>
</html>
[root@node4 test]# 
[root@node4 tomcat]# mv test webapps/
[root@node4 tomcat]# 
[root@node4 tomcat]# ls webapps/
ROOT  docs  examples  host-manager  manager  test
[root@node4 tomcat]# 

4.3 启动

[root@node4 ~]# echo 'export PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh
[root@node4 ~]# source /etc/profile.d/tomcat.sh
[root@node4 ~]# catalina.sh start
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
Using CATALINA_OPTS:   
Tomcat started.
[root@node4 ~]# ss -antl
State  Recv-Q Send-Q      Local Address:Port Peer Address:Port Process                                                        
LISTEN 0      128               0.0.0.0:22        0.0.0.0:*                                                                   
LISTEN 0      128               0.0.0.0:80        0.0.0.0:*                                                                   
LISTEN 0      128                  [::]:22           [::]:*                                                                   
LISTEN 0      1      [::ffff:127.0.0.1]:8005            *:*                                                                   
LISTEN 0      80                      *:3306            *:*                                                                   
LISTEN 0      100                     *:8080            *:*                                                                   
[root@node4 ~]# ps -ef|grep tomcat
root      388767       1 23 23:51 pts/4    00:00:04 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      390169   73841  0 23:51 pts/4    00:00:00 grep --color=auto tomcat
[root@node4 ~]# 

4.4 访问

在这里插入图片描述

在这里插入图片描述

4.5 修改tomcat配置文件

[root@node4 tomcat]# cd conf/
[root@node4 conf]# ls
Catalina             jaspic-providers.xml  tomcat-users.xml
catalina.policy      jaspic-providers.xsd  tomcat-users.xsd
catalina.properties  logging.properties    web.xml
context.xml          server.xml
[root@node4 conf]# pwd
/usr/local/tomcat/conf
[root@node4 conf]# vim server.xml <Connector protocol="AJP/1.3"address="::1"port="8009"redirectPort="8443" />将注释取消掉然后重启生效

4.6 出现403拒绝访问,修改文件

[root@node4 conf]# pwd
/usr/local/tomcat/conf
[root@node4 conf]# vim tomcat-users.xml 
添加三行:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
<!--<role rolename="tomcat"/><role rolename="role1"/><user username="tomcat" password="<must-be-changed>" roles="tomcat"/><user username="both" password="<must-be-changed>" roles="tomcat,role1"/><user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>
  • 没有访问成功,修改限制,改成可以在网页访问
[root@node4 manager]# pwd
/usr/local/tomcat/webapps/manager
[root@node4 manager]# vim META-INF/context.xml 
[root@node4 manager]# tail META-INF/context.xmlSee the License for the specific language governing permissions andlimitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" ><CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"sameSiteCookies="strict" /><Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="192\.168\.232\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /><Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
[root@node4 manager]# 

4.7 先停止,在启动

[root@node4 ~]# /usr/local/tomcat/bin/catalina.sh stop
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
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@node4 ~]# ps -ef|grep tomcat
root      447237    1843  0 16:34 pts/0    00:00:00 grep --color=auto tomcat
[root@node4 ~]# /usr/local/tomcat/bin/catalina.sh start
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
Using CATALINA_OPTS:
Tomcat started.
[root@node4 ~]# 
  • 访问

在这里插入图片描述

5. 配置Apache

5.1 启动代理模块

[root@node4 ~]# cd /usr/local/apache/conf/
[root@node4 conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@node4 conf]# vim httpd.conf //将下面三行取消注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so

5.2 创建虚拟主机,并重启

[root@node4 extra]# pwd
/usr/local/apache/conf/extra
[root@node4 extra]# cat httpd-vhosts.conf 
<VirtualHost *:80>DocumentRoot "/usr/local/apache/htdocs"ServerName www.example.comErrorLog "logs/www.example.com-error_log"CustomLog "logs/www.example.com-access_log" commonProxyPass / http://192.168.232.132:8080/ProxyPassReverse / http://192.168.232.132:8080/ProxyRequests Off<Directory "/usr/local/apache/htdocs">Options noneAllowOverride noneRequire all granted</Directory>
</VirtualHost>
[root@node4 extra]# systemctl restart httpd
[root@node4 extra]# 

5.3 访问

  • 192.168.232.132,直接输入ip访问tomcat

在这里插入图片描述

  • 192.168.232.132/test

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库性能分析之explain使用

怎么使用&#xff1f; explain select语句 怎么理解&#xff1f; 我们对explain查询出来的信息进行分析 1、id select查询的序列号&#xff0c;包含一组数字&#xff0c;表示查询中执行select自居或者操作表的顺序 id相同&#xff0c;执行顺序由上至下 id不同&#xff0…

Quartz.NET简单使用

文章目录一、Quartz.NET概述二、Quartz.NET快速上手1. 下载安装&#x1f53a;2. 配置2.1. Fluent Scheduler Builder API2.2. 配置文件⭐3. 启动一个示例程序3.1. 添加日志3.2. 试验程序并添加作业三、教程1️⃣使用Quartz2️⃣作业与触发器2.1. Quartz API2.2. Jobs和Triggers…

2022-8-31 jsp el表达式

jsp <%-- JSP脚本片段:用于在JSP页面写java代码--%> 注意: 1、JSP脚本片段中只能出现java代码,不能出现HTML元素。在 访问JSP时,JSP引擎翻译JSP页面中的脚本片段。 2、JSP脚本片段中的java代码必须严格遵守java的规则 3、一个JSP页面是可以有多…

猿创征文|UDP/TCP网络编程

⭐️前言⭐️ &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&…

Redis主从库网络断连问题——repl_backlog_buffer

主从库间网络断了怎么办&#xff1f; 在 Redis 2.8 之前&#xff0c;如果主从库在命令传播时出现了网络闪断&#xff0c;那么&#xff0c;从库就会和主库重新进行一次全量复制&#xff0c;开销非常大。 从 Redis 2.8 开始&#xff0c;网络断了之后&#xff0c;主从库会采用增量…

hashmap底层原理解析

底层数据结构&#xff0c;1.7与1.8有何不同? 为何要用红黑树&#xff0c;为何一上来不树化&#xff1f;树化阈值为何是8&#xff1f;何时会树化&#xff1f;何时会退化为链表? 链表比较短的时候&#xff0c;查询性能并没有那么低&#xff0c;不用费劲把它转成红黑树&#xff…

项目经理如何做好项目管理中的风险管理

项目中始终有些看不见的风险&#xff0c;这些风险可以成为威胁&#xff0c;也有可能会影响到项目的计划发生重大的变化。 一、项目目标不明确 确定项目目标是项目启动阶段重要的工作之一&#xff0c;要想项目在实施阶段少走弯路&#xff0c;在项目开工前&#xff0c;必须清晰…

信息系统项目管理师Part16-物联网

物联网 1.物联网的两项关键技术 传感器技术、嵌入式技术 2.传感器技术和嵌入式技术 RFID射频识别&#xff1a;可通过无线电信号识别特定目标并读写相关数据&#xff0c;而无需识别系统与特定目标之间建立机械或光学接触。 嵌入式技术&#xff1a;是综合了计算机硬件、传感器技…

猿创征文|OLAP之apache pinot初体验

目录 一、背景 二、介绍 三、特征 四、价值 五、参考组件 组件清单介绍&#xff1a; 1.Controller 2.Server 3.Broker 4.Minion (optional) 六、数据采集 批量数据流程 实时数据流程 查询处理流程 一、背景 最近在熟悉公司内部的埋点采集&#xff0c;发现数据架构…

NK-RTU980 CAP

BSP包中有两个CAP相关的例程&#xff0c;两个例程的区别为获取的图像数据的存储格式不同&#xff0c;planar例程是先存储所有像素点的Y&#xff0c;再存U&#xff0c;再存V。packed例程是每个像素的YVU连续存储。 一、硬件电路 处理器为NUC980DR61Y&#xff0c;封装为64pin&a…

python--转换wrf输出的风场数据为网页可视化的json格式

前言&#xff1a; 一般网页可视化风场中的数据都是json格式&#xff0c;而如果我们希望将wrf模式模拟输出的风场数据在网页中进行展示&#xff0c;这就需要先将wrfoutput数据转换为网页可以识别的json格式。 这里主要需要用到json库&#xff0c;主要的实现方式就是将读取的风场…

微信网课答案公众号题库接口使用

微信网课答案公众号题库接口使用 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&…

亚马逊审核 美国站安全带ASTMF1772安全绳攀岩绳EN892认证流程

1 登山锁扣定义 登山用锁扣是一种带弹簧门的金属环状物&#xff0c;用于在攀岩和登山时快速可逆地连接各部件&#xff0c;是安全系统关键的一部分。 登山用锁扣可用于将绳索固定到设备上&#xff0c;或者将两件或多件设备连接在一起。它们通常由铝或钢制成。这种锁扣具有不同…

ps2021神经ai滤镜无法使用,ps2021没法用神经元滤镜

如何解决ps2021 新版 AI神经滤镜不能用? 网上买正版&#xff0c;更新下就好了&#xff0c;盗版的都会有各种这样的问题。ps2021神经AI滤镜是需简要上传云端&#xff0c;由Adobe官方服务器人工智能运算的。 Ps2021版本新增了Ai神经元滤镜&#xff0c;它不是与软件一起安装的&…

谣言粉碎机?Python验证股市操盘口诀

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 经常炒股的朋友,应该都听说过这段操盘口诀: 早上大跌要买,早上大涨要卖 下午大涨不追,下午大跌次日买 早上大跌不割,不涨不跌睡觉 我们随手百度,也能发现各大主流论坛,充斥着该口…

Spring入门——Eclipse实现HelloWorld程序

前言 疫情影响又延期开学&#xff0c;只能在家上上网课划划水&#xff0c;刚做完spring入门的一个小作业&#xff0c;来做个总结分享&#xff0c;我也是个刚入门的小白&#xff0c;还望大佬们指点。 步入主题 环境 eclipse/spring-tool-suite-3 jdk1.8.0_221 另外&#xff0…

Linux :mysql数据库自动备份

Linux &#xff1a;mysql数据库自动备份前言使用shell脚本进行数据库的定时备份确定备份数据库备份shell脚本定时shell脚本前言 当项目发布到服务器上后&#xff0c;接下来考虑到就是如何做好数据库的数据备份。为的就是防止服务器突然异常崩溃&#xff0c;而导致的数据丢失问…

使用上下游思维实现系统解耦

在软件开发领域&#xff0c;解耦这个词相信大家都不陌生。在面向对象的语境下&#xff0c;我们会应用SOLID原则来构建高内聚低耦合的应用&#xff0c;实现模块间的解耦&#xff1b;在复杂业务系统分析和建模时&#xff0c;会通过DDD的战略和战术设计帮助划分领域并实现分布式系…

Java毕业设计-校园活动赞助与宣传管理系统

&#x1f525;作者主页&#xff1a;疯狂行者&#x1f525; &#x1f496;✌java领域优质创作者,专注于Java技术领域技术交流✌&#x1f496; &#x1f496;文末获取源码&#x1f496; 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1…

(分布式缓存)Redis持久化

一、RDB持久化 首先需要在Linux系统中安装一个Redis&#xff0c;如果尚未安装的同学&#xff0c;可以参考下面链接教程安装先&#xff1a; (73条消息) 单机安装Redis_其然乐衣的博客-CSDN博客 修改配置文件 创建一个数据 因为设置了只要5秒内有一次修改就会触发一次备份数据&am…