Rumah pangkalan data tutorial mysql ProxySQL读写分离从配置到使用

ProxySQL读写分离从配置到使用

Jul 21, 2017 am 09:55 AM
perpisahan Baca dan tulis

在美团点评DBProxy读写分离使用说明文章中已经说明了使用目的,本文介绍ProxySQL的使用方法以及和DBProxy的性能差异。具体的介绍可以看官网的相关说明,并且这个中间件也是percona推的一款中间件。其特性和其他读写分离的中间件差距不大,具体的会在文中介绍。本文大致简单的介绍在使用过程中的一些说明,也可以看官方的wiki获得使用帮助。

环境: 

Distributor ID:    Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04Codename:    trusty

下载

percona站点:

https://www.percona.com/downloads/proxysql/

github/官网:

https://github.com/sysown/proxysql/releases



我们首先看一下自己的环境:

MHA已经搭建:
master:172.16.16.35:3306slave:172.16.16.35:3307slave:172.16.16.34:3307
Salin selepas log masuk

MHA manager在172.16.16.34,配置文件如下:

[root@localhost bin]# cat /etc/masterha/app1.cnf
[server default]
manager_log=/var/log/mha/app1/manager.log
manager_workdir=/var/log/mha/app1.log
master_binlog_dir=/home/mysql/db3306/log/master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
password=123456ping_interval=1remote_workdir=/tmp
repl_password=123456repl_user=root
report_script=/usr/local/bin/send_report
shutdown_script=""ssh_user=root
user=root
[server1]
hostname=172.16.16.35port=3306[server2]
candidate_master=1check_repl_delay=0hostname=172.16.16.34port=3306[server3]
hostname=172.16.16.35port=3307
Salin selepas log masuk

 

下面我们基于这样一套MHA环境搭建读写分离。
1:安装ProxySQL软件,这个我们部署到172.16.16.34上
[root@localhost bin]# sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm[root@localhost bin]# yum install proxysql
Salin selepas log masuk

 

最后有以下提示:
Installed:
proxysql.x86_64 0:1.3.7-1.1.el6
Complete!
Salin selepas log masuk

 

也就是安装完成了。然后查一下具体的文件:
[root@localhost bin]# find / -name proxysql/var/lib/proxysql/var/run/proxysql/etc/rc.d/init.d/proxysql/usr/bin/proxysql
Salin selepas log masuk

 

发现确实已经将ProxySQL安装成功了
2:启动配置ProxySQL
看一下配置文件:
[root@localhost bin]# cat /etc/proxysql-admin.cnf
# proxysql admin interface credentials.
export PROXYSQL_USERNAME="admin"export PROXYSQL_PASSWORD="admin"export PROXYSQL_HOSTNAME="localhost"export PROXYSQL_PORT="6032"
 # PXC admin credentials for connecting to pxc-cluster-node.
export CLUSTER_USERNAME="admin"export CLUSTER_PASSWORD="admin"export CLUSTER_HOSTNAME="localhost"export CLUSTER_PORT="3306"
 # proxysql monitoring user. proxysql admin script will create this user in pxc to monitor pxc-nodes.
export MONITOR_USERNAME="monitor"export MONITOR_PASSWORD="monit0r"
 # Application user to connect to pxc-node through proxysql
export CLUSTER_APP_USERNAME="proxysql_user"export CLUSTER_APP_PASSWORD="passw0rd"
 # ProxySQL read/write hostgroup
export WRITE_HOSTGROUP_ID="10"export READ_HOSTGROUP_ID="11"
 # ProxySQL read/write configuration mode.
export MODE="singlewrite"
Salin selepas log masuk

 

启动:
[root@localhost bin]# proxysql-admin --config-file=/etc/proxysql-admin.cnf --enable
This script will assist with configuring ProxySQL (currently only Percona XtraDB cluster in combination with ProxySQL is supported)
ProxySQL read/write configuration mode is singlewrite
ProxySQL is not running; please start the proxysql service
Salin selepas log masuk

 

现在来说ProxySQL 的路由已经启动,提示我们要启动proxysql service
[root@localhost bin]# service proxy
proxy proxysql proxysql-admin proxysql_galera_checker proxysql_node_monitor
[root@localhost bin]# service proxysql start
Starting ProxySQL: DONE![root@localhost bin]# mysql -uadmin -padmin -h127.0.0.1 -P6032
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 1Server version: 5.7.14 (ProxySQL Admin Module)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
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>
Salin selepas log masuk

 

可以看到我们已经登录成功了,这里要说明的是 proxysql的默认配置文件是在:
[root@localhost bin]# find / -name proxysql.cnf/etc/proxysql.cnf
Salin selepas log masuk

 

接下来我们开始配置ProxySQL:
[root@localhost bin]# mysql -uadmin -padmin -h127.0.0.1 -P6032
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 2Server version: 5.7.14 (ProxySQL Admin Module)
 
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 
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> show databases;+-----+---------+-------------------------------+
| seq | name | file |
+-----+---------+-------------------------------+
| 0 | main | |
| 2 | disk | /var/lib/proxysql/proxysql.db |
| 3 | stats | |
| 4 | monitor | |
+-----+---------+-------------------------------+4 rows in set (0.00 sec)
 
mysql> use admin
Database changed
mysql> show tables;+--------------------------------------+
| tables |
+--------------------------------------+
| global_variables |
| mysql_collations |
| mysql_query_rules |
| mysql_replication_hostgroups |
| mysql_servers |
| mysql_users |
| runtime_global_variables |
| runtime_mysql_query_rules |
| runtime_mysql_replication_hostgroups |
| runtime_mysql_servers |
| runtime_mysql_users |
| runtime_scheduler |
| scheduler |
+--------------------------------------+13 rows in set (0.00 sec)
Salin selepas log masuk

 

下面加入主从信息:
mysql> insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(100,'172.16.16.35',3306,1,1000,10,'test');
Query OK, 1 row affected (0.00 sec)
mysql> insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(101,'172.16.16.34',3306,1,1000,10,'test');
Query OK, 1 row affected (0.00 sec)
mysql> insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(101,'172.16.16.35',3307,1,1000,10,'test');
Query OK, 1 row affected (0.00 sec)
mysql> select * from mysql_servers;+--------------+--------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| hostgroup_id | hostname | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
+--------------+--------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| 100 | 172.16.16.35 | 3306 | ONLINE | 1 | 0 | 1000 | 10 | 0 | 0 | test |
| 101 | 172.16.16.34 | 3306 | ONLINE | 1 | 0 | 1000 | 10 | 0 | 0 | test |
| 101 | 172.16.16.35 | 3307 | ONLINE | 1 | 0 | 1000 | 10 | 0 | 0 | test |
+--------------+--------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+3 rows in set (0.00 sec)
Salin selepas log masuk

 

然后添加读写映射(主要是MHA后端切换的时候保证ProxySQL也能够自动切换):
mysql> insert into mysql_replication_hostgroups values(100,101,'masterha') ;
Query OK, 1 row affected (0.00 sec)
mysql> select * from mysql_replication_hostgroups;+------------------+------------------+----------+
| writer_hostgroup | reader_hostgroup | comment |
+------------------+------------------+----------+
| 100 | 101 | masterha |
+------------------+------------------+----------+1 row in set (0.00 sec)
Salin selepas log masuk

 

为ProxySQL添加监控账号:
mysql> GRANT SUPER, REPLICATION CLIENT ON *.* TO 'proxysql'@'172.16.16.%' IDENTIFIED BY 'proxysql';
Query OK, 0 rows affected, 1 warning (0.09 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.10 sec)
Salin selepas log masuk

 

配置监控账号(在proxySQL当中进行配置):
mysql> set mysql-monitor_username='proxysql';
Query OK, 1 row affected (0.00 sec)
mysql> set mysql-monitor_password='proxysql';
Query OK, 1 row affected (0.00 sec)
mysql> load mysql variables to runtime;
Query OK, 0 rows affected (0.00 sec)
mysql> save mysql variables to disk;
Query OK, 74 rows affected (0.02 sec)
Salin selepas log masuk

 

PS:有时候runtime_mysql_servers的status不为ONLINE状态的话可以通过查看monitor.mysql_server_ping_log这个表来查看具体的报错信息。
mysql> select * from monitor.mysql_server_ping_log;
然后配置程序账号,简单点统一使用root:123456最高权限来配置:
mysql> insert into mysql_users(username,password,active,default_hostgroup,transaction_persistent) values('root','123456',1,100,1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from mysql_users;+----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
| username | password | active | use_ssl | default_hostgroup | default_schema | schema_locked | transaction_persistent | fast_forward | backend | frontend | max_connections |
+----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+
| root | 123456 | 1 | 0 | 100 | NULL | 0 | 1 | 0 | 1 | 1 | 10000 |
+----------+----------+--------+---------+-------------------+----------------+---------------+------------------------+--------------+---------+----------+-----------------+1 row in set (0.00 sec)
Salin selepas log masuk

 

配置完成以后开始重新加载和保存我们的配置:
mysql> load mysql servers to runtime;
Query OK, 0 rows affected (0.01 sec)
mysql> save mysql servers to disk;
Query OK, 0 rows affected (0.08 sec)
mysql> load mysql users to runtime;
Query OK, 0 rows affected (0.00 sec)
mysql> save mysql users to disk;
Query OK, 0 rows affected (0.03 sec)
Salin selepas log masuk

 

接下来开始配置路由规则:
mysql> INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(1,'^SELECT.*FOR UPDATE$',100,1);
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(1,'^SELECT',101,1);
Query OK, 1 row affected (0.00 sec)
mysql> LOAD MYSQL QUERY RULES TO RUNTIME;
Query OK, 0 rows affected (0.00 sec)
mysql> SAVE MYSQL QUERY RULES TO DISK;
Query OK, 0 rows affected (0.04 sec)
Salin selepas log masuk

 

至此配置已经完成了
3:测试读写分离
在172.16.16.35上链接proxySQL端口6033,并且做简单的select操作:
[root@localhost ~]# mysql -uroot -p123456 -h172.16.16.34 -P6033
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 22Server version: 5.7.14 (ProxySQL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
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> select * from maxiangqian.test;+-----+------+
| id | name |
+-----+------+
| 1 | qq |
| 2 | qq |
| 4 | aa |
| 11 | a |
| 111 | a |
+-----+------+5 rows in set (0.04 sec)
Salin selepas log masuk

 

然后在进行查询看一下:
mysql> select * from stats_mysql_query_digest;
Salin selepas log masuk
Salin selepas log masuk

可以看到已经完成了读写分离了。
mysql> select @@server_id;+-------------+
| @@server_id |
+-------------+
| 353307 |
+-------------+1 row in set (0.01 sec)
Salin selepas log masuk

 

查看一下server ID已经路由到了172.16.16.35:3307这个从库上了。
测一下for update:
mysql> select * from maxiangqian.test for update;+-----+------+
| id | name |
+-----+------+
| 1 | qq |
| 2 | qq |
| 4 | aa |
| 11 | a |
| 111 | a |
+-----+------+5 rows in set (0.00 sec)
Salin selepas log masuk

 

再查看
mysql> select * from stats_mysql_query_digest;
Salin selepas log masuk
Salin selepas log masuk

已经自动路由到了主库。
至此ProxySQL+MySQL MHA读写分离测试完成。。。未完待续
5:关于ProxySQL的思考以及简单的命令
ProxySQL通过以上方式是可以实现读写分离,但是这种方式真的就没有问题了吗,如果是一些比如查询订单状态的这种要求实时性非常高的SQL的话,似乎被路由到了从库就会出现BUG。我们可以选择在程序端控制这些参数,ProxySQL只作为一个负载均衡来使用,给ProxySQL创建多个账号,一个读写,一个只读。然后程序去实现读写分离。
ProxySQL是分三层来设计运行的,分别为RUNTIME ,MEMORY ,DISK :
RUNTIME 代表的是ProxySQL当前生效的配置,包括 global_variables, mysql_servers, mysql_users, mysql_query_rules。无法直接修改这里的配置,必须要从下一层load进来。
MEMORY 是平时在mysql命令行修改的 main 里头配置,可以认为是SQLite数据库在内存的镜像
DISK / CONFIG FILE 持久存储的那份配置,一般在$(DATADIR)/proxysql.db,在重启的时候会从硬盘里加载。 /etc/proxysql.cnf文件只在第一次初始化的时候用到,完了后,如果要修改监听端口,还是需要在管理命令行里修改,再 save 到硬盘
常用命令:
LOAD MYSQL SERVERS TO RUNTIME -- 让修改的配置生效,也就是从MEMORY 把参数LOAD过来,等价于LOAD MYSQL USERS FROM MEMORY,这个语句的语法比较单间,FROM代表从上层LOAD过来,TO代表从本层到某一个层。比如前面我们设置了MySQL的监控账号,但是还是要执行LOAD和SAVE保存变量并且使变量生效。

 

Atas ialah kandungan terperinci ProxySQL读写分离从配置到使用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan PHP untuk melaksanakan fungsi caching data, membaca dan menulis Cara menggunakan PHP untuk melaksanakan fungsi caching data, membaca dan menulis Sep 05, 2023 pm 05:45 PM

Cara menggunakan PHP untuk melaksanakan fungsi caching data dan baca-tulis Caching ialah cara penting untuk meningkatkan prestasi sistem Melalui caching, data yang kerap digunakan boleh disimpan dalam memori untuk meningkatkan kelajuan membaca data. Dalam PHP, kita boleh menggunakan pelbagai kaedah untuk melaksanakan caching data dan fungsi baca dan tulis. Artikel ini akan memperkenalkan dua kaedah biasa: menggunakan cache fail dan menggunakan cache memori. 1. Gunakan caching fail. Caching fail menyimpan data dalam fail untuk bacaan seterusnya. Berikut ialah kod sampel yang menggunakan caching fail untuk membaca dan menulis data:

Cara menggunakan sistem modul dalam Java 9 untuk memisahkan dan mengasingkan kod Cara menggunakan sistem modul dalam Java 9 untuk memisahkan dan mengasingkan kod Jul 30, 2023 pm 07:46 PM

Cara menggunakan sistem modul dalam Java 9 untuk memisahkan dan mengasingkan kod Memandangkan skala perisian terus berkembang, kerumitan kod terus meningkat. Untuk mengatur dan mengurus kod dengan lebih baik, Java9 memperkenalkan sistem modul. Kemunculan sistem modul menyelesaikan masalah kebergantungan pakej tradisional, menjadikan pengasingan dan pengasingan kod lebih mudah dan lebih fleksibel. Artikel ini akan memperkenalkan cara menggunakan sistem modul dalam Java 9 untuk mencapai pengasingan dan pengasingan kod. 1. Definisi modul Dalam Java9, kita boleh menggunakan kata kunci modul untuk mentakrifkan

Cadangan tentang pemilihan teknologi bahagian hadapan dalam pembangunan pemisahan bahagian hadapan dan bahagian belakang Golang. Cadangan tentang pemilihan teknologi bahagian hadapan dalam pembangunan pemisahan bahagian hadapan dan bahagian belakang Golang. Mar 05, 2024 pm 12:12 PM

Tajuk: Cadangan tentang pemilihan teknologi bahagian hadapan dalam pembangunan pemisahan bahagian hadapan dan belakang Golang Memandangkan kerumitan dan keperluan aplikasi web terus meningkat, model pembangunan pemisahan bahagian hadapan dan belakang menjadi semakin popular. Dalam model pembangunan ini, bahagian belakang bertanggungjawab untuk memproses logik perniagaan, dan bahagian hadapan bertanggungjawab untuk memaparkan halaman dan berinteraksi dengan pengguna yang berkomunikasi melalui API. Untuk pasukan pembangunan yang menggunakan Golang sebagai bahasa bahagian belakang, memilih teknologi bahagian hadapan yang betul adalah penting. Artikel ini akan membincangkan teknologi bahagian hadapan yang disyorkan untuk dipilih dalam pembangunan bahagian hadapan dan bahagian belakang yang berasingan di Golang, dan

Pertempuran praktikal: ujian baca dan tulis io cakera keras pada Linux Pertempuran praktikal: ujian baca dan tulis io cakera keras pada Linux Feb 19, 2024 pm 03:40 PM

Concept fio, juga dikenali sebagai FlexibleIOTester, ialah aplikasi yang ditulis oleh JensAxboe. Jens ialah penyelenggara blockIOsubsystem dalam LinuxKernel. FIO ialah alat yang digunakan untuk menguji sistem fail rangkaian dan prestasi cakera Ia sering digunakan untuk mengesahkan model mesin dan membandingkan prestasi sistem fail. Ia secara automatik menghantar arahan fio ke senarai mesin kluster dan mengumpul IOPS untuk fail kecil dan data pemprosesan untuk fail besar. rw=[mode]rwmixwrite=30 Dalam mod baca dan tulis bercampur, menulis akaun untuk 30% baca berurutan baca tulis berurutan tulis baca tulis berurutan bercampur baca dan tulis randwrite tulis rawak r

Mendedahkan kerja dalaman operasi fail Java Mendedahkan kerja dalaman operasi fail Java Feb 28, 2024 am 08:22 AM

API Sistem Fail Prinsip dalaman operasi fail Java berkait rapat dengan API sistem fail sistem pengendalian. Di Java, operasi fail disediakan oleh modul java.nio.file dalam pakej java.NIO. Modul ini menyediakan enkapsulasi API sistem fail, membenarkan pembangun Java menggunakan API bersatu untuk melaksanakan operasi fail pada sistem pengendalian yang berbeza. Objek Fail Apabila program Java perlu mengakses fail, ia perlu mencipta objek java.nio.file.Path terlebih dahulu. Objek Path mewakili laluan dalam sistem fail, yang boleh menjadi laluan mutlak atau laluan relatif. Setelah objek Path dicipta, anda boleh menggunakannya untuk mendapatkan pelbagai sifat fail, seperti nama

Penting untuk pembangun PHP: Penjelasan terperinci tentang kaedah pelaksanaan pemisahan baca dan tulis MySQL Penting untuk pembangun PHP: Penjelasan terperinci tentang kaedah pelaksanaan pemisahan baca dan tulis MySQL Mar 04, 2024 pm 04:36 PM

Pembangun PHP sering menghadapi operasi pangkalan data semasa proses pembangunan laman web Sebagai sistem pengurusan pangkalan data yang sangat popular, pemisahan baca-tulis MySQL adalah salah satu cara penting untuk meningkatkan prestasi laman web. Dalam pembangunan PHP, melaksanakan pemisahan baca-tulis MySQL boleh meningkatkan keupayaan akses serentak tapak web dan pengalaman pengguna. Artikel ini akan memperkenalkan secara terperinci kaedah pelaksanaan pemisahan baca-tulis MySQL, dan menyediakan contoh kod PHP khusus untuk membantu pembangun PHP lebih memahami dan menggunakan fungsi pemisahan baca-tulis. Apakah yang dibaca oleh MySQL

Nyahsulit kaedah membaca dan menulis untuk memproses fail DBF dalam Java Nyahsulit kaedah membaca dan menulis untuk memproses fail DBF dalam Java Mar 29, 2024 pm 12:39 PM

Menyahsulit kaedah membaca dan menulis untuk memproses fail DBF dalam Java DBF (dBaseFile) ialah format fail pangkalan data biasa yang biasanya digunakan untuk menyimpan data jadual. Dalam program Java, pemprosesan membaca dan menulis fail DBF adalah keperluan yang agak biasa. Artikel ini akan memperkenalkan cara menggunakan Java untuk menyahsulit proses ini dan memberikan contoh kod khusus. 1. Membaca fail DBF Di Java, membaca fail DBF biasanya memerlukan bantuan perpustakaan pihak ketiga, seperti perpustakaan dbfread. Pertama, anda perlu mengkonfigurasi projek

Bagaimana untuk meningkatkan kelajuan akses laman web Java melalui pemisahan sumber statik? Bagaimana untuk meningkatkan kelajuan akses laman web Java melalui pemisahan sumber statik? Aug 04, 2023 pm 03:21 PM

Bagaimana untuk meningkatkan kelajuan akses laman web Java melalui pemisahan sumber statik? Dengan perkembangan pesat Internet, semakin ramai orang menggunakan laman web untuk mendapatkan maklumat dan berkomunikasi. Untuk tapak web Java, kelajuan akses adalah penting, yang secara langsung mempengaruhi pengalaman pengguna dan kejayaan tapak web. Antaranya, kelajuan memuatkan sumber statik adalah salah satu faktor penting yang mempengaruhi kelajuan capaian laman web. Artikel ini akan memperkenalkan cara untuk meningkatkan kelajuan akses tapak web Java melalui pengasingan sumber statik. Apakah sumber statik? Pertama, kita perlu menjelaskan apa itu sumber statik.

See all articles