Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >penggunaan kolam sambungan nodejs

penggunaan kolam sambungan nodejs

WBOY
WBOYasal
2023-05-24 10:03:37796semak imbas

Node.js ialah bahasa pembangunan bahagian hadapan berdasarkan JavaScript Ia menyediakan keupayaan yang sangat berkuasa untuk membina aplikasi masa nyata, boleh bertindak balas dengan cepat kepada permintaan dan boleh menyokong banyak corak pembangunan (seperti OO, pengaturcaraan berfungsi, dll. .). Ciri I/O tanpa sekatan Node.js memberikannya prestasi yang sangat pantas, menjadikannya salah satu bahasa pembangunan paling popular dalam beberapa tahun kebelakangan ini. Walau bagaimanapun, apabila membangun dengan Node.js, anda juga perlu mempertimbangkan cara mengurus dan menyambung ke pangkalan data. Dalam operasi pangkalan data, kami biasanya menghadapi beberapa masalah, seperti isu pengurusan kolam sambungan pangkalan data. Oleh itu, mari kita perkenalkan penggunaan kumpulan sambungan Node.js.

1. Apakah kumpulan sambungan pangkalan data

Apabila membuat sambungan pangkalan data, anda mungkin menghadapi masalah berikut:

1 dengan pangkalan data sambungan rangkaian, dan mewujudkan sambungan rangkaian mengambil masa dan akan menjejaskan prestasi program.

2. Jika program perlu kerap membuka dan menutup pangkalan data, ia akan menduduki sumber pangkalan data Jika trafik tapak web banyak, pangkalan data mungkin akan diturunkan secara langsung.

3 Memandangkan sambungan adalah sumber yang agak mahal, dalam keadaan serentak yang tinggi, meminta berbilang sambungan pada satu masa boleh menyebabkan memori menjadi letih.

Untuk menyelesaikan masalah ini, kami boleh menggunakan kumpulan sambungan pangkalan data untuk menyelesaikannya. Kolam sambungan adalah seperti kolam cache Satu set sambungan pangkalan data boleh diwujudkan terlebih dahulu dan diletakkan di dalam kolam Setiap kali program memerlukan sambungan, ia akan diperolehi daripada kolam sambungan dan dikembalikan ke kolam ini boleh menjimatkan masa dan sumber dengan berkesan, mengurangkan permintaan rangkaian dan overhed pelayan.

2. Penggunaan kumpulan sambungan Node.js

Sebelum menggunakan kumpulan sambungan Node.js, anda perlu memperkenalkan modul MySQL terkenal npm. Modul MySQL Node.js ialah perpustakaan sambungan pangkalan data MySQL yang sangat berguna Ia menyediakan kelas Sambungan, kelas Pool dan kelas PoolCluster untuk merealisasikan sambungan dan interaksi dengan pangkalan data MySQL.

Pertama, kita perlu memasang dan memperkenalkan modul MySQL dalam Node.js:

npm install mysql

const mysql = require('mysql');

2.1 Mewujudkan kumpulan sambungan

Mengikut keperluan perniagaan, kami boleh mewujudkan bilangan kumpulan sambungan yang berbeza, contohnya, mewujudkan kumpulan sambungan dengan bilangan sambungan maksimum 10 dan bilangan sambungan minimum sebanyak 2. Apabila pangkalan data tidak dapat menyediakan sambungan baru, program akan melaporkan ralat selepas menunggu untuk tempoh masa. Kodnya adalah seperti berikut:

kolam const = mysql.createPool({
hos: '127.0.0.1',
pengguna: 'root',
kata laluan: 'kata laluan',
pangkalan data : 'mydb',
connectionLimit: 10,
queueLimit: 2
});

2.2 Dapatkan sambungan daripada kolam sambungan

Selepas sambungan pool ditubuhkan Akhirnya, program perlu mendapatkan sambungan daripada kolam sambungan untuk melaksanakan operasi. Dalam modul MySQL, kami menggunakan kaedah getConnection untuk mendapatkan sambungan daripada kumpulan sambungan.

pool.getConnection(function(err, connection) {

if (err) throw err;
console.log("连接成功!");

});

Jika sambungan berjaya, kami boleh melakukan operasi pangkalan data melalui objek sambungan, seperti sebagai menanyakan data pangkalan data. Selepas melengkapkan keperluan perniagaan, program perlu mengembalikan sambungan ke kumpulan sambungan supaya fungsi atau pengguna lain boleh meneruskan operasi pangkalan data. Gunakan kaedah release untuk melepaskan sumber sambungan kembali ke kumpulan sambungan. Kodnya adalah seperti berikut:

pool.getConnection(function(err, connection) {

if (err) throw err;
console.log("连接成功!");
connection.query('SELECT * FROM table1', function (error, results, fields) {
  // ... do something here with the results ... 
  connection.release();
});

});

3 🎜>Sebenarnya Semasa proses permohonan, kita perlu memberi perhatian kepada peraturan pelepasan kumpulan sambungan. Jika sambungan dalam kumpulan sambungan tidak dikeluarkan, sejumlah besar storan dan sumber memori akan diduduki, menyebabkan aplikasi ranap. Oleh itu, kita perlu melepaskan sambungan dalam kolam sambungan tepat pada masanya.

Sebagai contoh, dalam rangka kerja Express.js, kita boleh menggunakan kaedah

untuk menutup aplikasi dan melepaskan semua sambungan kolam sambungan di sana. Kodnya adalah seperti berikut:

app.on('close', callback)app.on('close', function(err) {

pool.end(function (err) {

if (err) throw err;
console.log("数据库连接池已关闭!");

});

});


4. Ringkasan

Penggunaan kumpulan sambungan Node.js boleh membantu kami mengurus sambungan pangkalan data dengan cekap, meningkatkan prestasi program dan mengurangkan overhed sumber dan risiko keselamatan. Dalam aplikasi sebenar, konfigurasi dan pelarasan yang sepadan perlu dibuat mengikut keperluan perniagaan dan jenis sistem untuk mencapai prestasi optimum.

Atas ialah kandungan terperinci penggunaan kolam sambungan nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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