Heim  >  Artikel  >  Web-Frontend  >  Nutzung des NodeJS-Verbindungspools

Nutzung des NodeJS-Verbindungspools

WBOY
WBOYOriginal
2023-05-24 10:03:37763Durchsuche

Node.js ist eine auf JavaScript basierende Front-End-Entwicklungssprache. Sie bietet sehr leistungsstarke Funktionen zum Erstellen von Echtzeitanwendungen, kann schnell auf Anforderungen reagieren und viele Entwicklungsmodelle unterstützen (z. B. OO, funktionale Programmierung usw.). ). Die nicht blockierende E/A-Funktion von Node.js sorgt für eine ultraschnelle Leistung und macht es zu einer der beliebtesten Entwicklungssprachen der letzten Jahre. Bei der Entwicklung mit Node.js müssen Sie jedoch auch darüber nachdenken, wie Sie die Datenbank verwalten und eine Verbindung zu ihr herstellen. Bei Datenbankvorgängen treten normalerweise einige Probleme auf, z. B. Probleme bei der Verwaltung des Datenbankverbindungspools. Lassen Sie uns daher die Verwendung des Verbindungspools von Node.j vorstellen.

1. Was ist ein Datenbankverbindungspool? Beim Herstellen einer Datenbankverbindung können die folgenden Probleme auftreten:

1. Jede Verbindung erfordert eine neue Netzwerkverbindung zur Datenbank, und der Aufbau einer Netzwerkverbindung nimmt Zeit in Anspruch Programmleistung.

2. Wenn das Programm die Datenbank häufig öffnen und schließen muss, werden Datenbankressourcen beansprucht. Wenn der Website-Verkehr stark ist, wird die Datenbank möglicherweise direkt heruntergefahren.

3. Da Verbindungen relativ teure Ressourcen sind, kann das gleichzeitige Anfordern mehrerer Verbindungen unter Bedingungen hoher Parallelität dazu führen, dass der Speicher erschöpft ist.

Um diese Probleme zu lösen, können wir den Datenbankverbindungspool verwenden, um sie zu lösen. Der Verbindungspool ähnelt einem Cache-Pool. Jedes Mal, wenn das Programm eine Verbindung benötigt, wird diese aus dem Verbindungspool abgerufen und an den Pool zurückgegeben kann effektiv Zeit und Ressourcen sparen und Netzwerkanforderungen und Server-Overhead reduzieren.

2. Verwendung des Node.js-Verbindungspools

Bevor Sie den Node.js-Verbindungspool verwenden, müssen Sie das berühmte MySQL-Modul von npm vorstellen. Das Node.js-MySQL-Modul ist eine sehr nützliche MySQL-Datenbankverbindungsbibliothek. Es stellt die Connection-Klasse, die Pool-Klasse und die PoolCluster-Klasse bereit, um die Verbindung und Interaktion mit der MySQL-Datenbank zu realisieren.

Zuerst müssen wir das MySQL-Modul in Node.js installieren und einführen:

npm install mysql

const mysql = require('mysql');

II.1 Richten Sie einen Verbindungspool ein

Entsprechend den Geschäftsanforderungen , wir Es können unterschiedliche Anzahlen von Verbindungspools eingerichtet werden, beispielsweise ein Verbindungspool mit einer maximalen Anzahl von Verbindungen von 10 und einer minimalen Anzahl von Verbindungen von 2. Wenn die Datenbank keine neuen Verbindungen bereitstellen kann, meldet das Programm nach einer gewissen Wartezeit einen Fehler. Der Code lautet wie folgt:

const pool = mysql.createPool({

host: '127.0.0.1',

Benutzer: 'root',
Passwort: 'password',
Datenbank: 'mydb',
ConnectionLimit: 10 ,
queueLimit : 2
});

2.2 Holen Sie sich die Verbindung aus dem Verbindungspool

Nachdem der Verbindungspool eingerichtet wurde, muss das Programm die Verbindung aus dem Verbindungspool abrufen, um den Vorgang auszuführen. Im MySQL-Modul verwenden wir die Methode getConnection, um die Verbindung aus dem Verbindungspool abzurufen.

pool.getConnection(function(err, Connection) {getConnection方法从连接池中获取连接。

pool.getConnection(function(err, connection) {

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

});

如果成功连接,我们可以通过connection对象进行数据库操作,例如查询数据库中的数据。在完成业务需求后,程序需要将连接返回到连接池中,以便于其他函数或用户继续进行数据库操作。使用release方法把连接资源释放回连接池中。代码如下:

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();
});

});

三、连接池的释放

在实际应用过程中,我们需要注意连接池的释放规则。如果连接池中的连接一直不释放,会占用大量的存储和内存资源,导致应用崩溃。因此,我们需要及时释放连接池中的连接。

例如在Express.js框架的中,我们可以使用app.on('close', callback)

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

});


Wenn die Verbindung erfolgreich ist, können wir Datenbankoperationen über das Verbindungsobjekt ausführen, z. B. das Abfragen von Daten in der Datenbank. Nach Abschluss der Geschäftsanforderungen muss das Programm die Verbindung zum Verbindungspool wiederherstellen, damit andere Funktionen oder Benutzer den Datenbankbetrieb fortsetzen können. Verwenden Sie die Methode release, um Verbindungsressourcen wieder für den Verbindungspool freizugeben. Der Code lautet wie folgt:

pool.getConnection(function(err, Connection) {
rrreee

});

3. Freigabe des Verbindungspools

Im eigentlichen Bewerbungsprozess müssen wir auf die Freigabe achten Regeln des Verbindungspools. Wenn die Verbindungen im Verbindungspool nicht freigegeben werden, wird eine große Menge an Speicher- und Arbeitsspeicherressourcen belegt, was zum Absturz der Anwendung führt. Daher müssen wir die Verbindungen im Verbindungspool rechtzeitig freigeben. 🎜🎜Zum Beispiel können wir im Express.js-Framework die Methode app.on('close', callback) verwenden, um die Anwendung zu schließen und alle dortigen Verbindungspoolverbindungen freizugeben. Der Code lautet wie folgt: 🎜🎜app.on('close', function(err) {🎜 pool.end(function (err) {🎜rrreee🎜});🎜});🎜🎜IV. Zusammenfassung🎜🎜Node. js-Verbindungspool Die Verwendung von kann uns dabei helfen, Datenbankverbindungen effizient zu verwalten, die Programmleistung zu verbessern und gleichzeitig den Ressourcenaufwand und Sicherheitsrisiken zu reduzieren. In tatsächlichen Anwendungen müssen entsprechende Konfigurationen und Anpassungen entsprechend den Geschäftsanforderungen und dem Systemtyp vorgenommen werden, um eine optimale Leistung zu erzielen. 🎜

Das obige ist der detaillierte Inhalt vonNutzung des NodeJS-Verbindungspools. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn