Maison >développement back-end >Problème PHP >PHP dispose-t-il d'un pool de connexions à la base de données ?

PHP dispose-t-il d'un pool de connexions à la base de données ?

王林
王林original
2019-10-10 11:52:315344parcourir

PHP dispose-t-il d'un pool de connexions à la base de données ?

php-cp (php-connect-pool) est un pool de connexions à une base de données écrit avec l'extension php.

1. Il est différent des autres produits middleware de base de données open source sur le marché

1. de middleware Le cluster est un processus proxy exécuté sur le serveur d'applications, qui réduit une couche de dépendances externes, rendant l'architecture plus simple, plus propre et plus fiable.

2. Il a des performances plus élevées et réduit une transmission réseau. Il communique avec le processus php via un ipc efficace et évite la consommation d'analyse de protocole.

3. Prend en charge Redis et MySQL en même temps, pas besoin de déployer deux systèmes middleware distincts.

2. Schéma schématique simple

PHP dispose-t-il dun pool de connexions à la base de données ?

3. >

1. Prend en charge la configuration du nombre maximum et minimum de connexions.

2. Prise en charge de la connexion de récupération automatique à basse pression (la force et la fréquence sont configurables).

3. Prise en charge du redémarrage en douceur.

4. Prise en charge du mécanisme de file d'attente pour l'épuisement des connexions.

5. Prend en charge MySQL et Redis.

6. Il est simple à utiliser. Après une simple intégration du framework (modification de la nouvelle méthode), l'entreprise existante peut utiliser le pool de connexions sans changer une seule ligne de code.

7. La fonction get_disable_list est fournie pour obtenir une liste des IP d'indisponibilité indisponibles, afin que l'équilibrage de charge puisse également être effectué sur le client (faire une différence entre toutes les IP du fichier de configuration et l'IP d'indisponibilité, et puis au hasard Peut).

btw : Vous pouvez également utiliser lvs, mais le transfert lvs introduit des dépendances sur l'architecture du système. Le mode DR ne peut pas traverser les segments du réseau et limite l'expansion. S'il y a un problème avec la base de données back-end, vous pouvez uniquement le faire. connaître le VIP des lvs.

8. Le processus du pool de connexions démarrera le processus ping pour surveiller la liste des temps d'arrêt. Si disponible, cela sera reflété dans la valeur de retour de la fonction get_disable_list

9. des optimisations ont été faites, bien que la requête passe par le processus de transfert du pool de connexions, mais fondamentalement aucune perte de qps.

4. Comment utiliser

1. Placez le fichier pool.ini dans /etc/ et modifiez la configuration à l'intérieur si nécessaire.

2. Démarrez le processus de l'agent

./pool_server start

Supportez la commande "start" "stop" "restart" "reload"

3. Modifiez le script php

$db = new PDO(xxxxx);
修改成  $db = new pdo_connect_pool(xxxx);//dont use persistent
$redis = new Redis();
修改成 $redis = new redis_connect_pool();//dont use pconnect

Astuce :

Appelez $db/$redis->release() dès que possible pour libérer les connexions occupées par ce processus dans le pool.

Tutoriel recommandé :

Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn