Maison >cadre php >Swoole >Comment utiliser Swoole pour créer un pool de connexions MySQL

Comment utiliser Swoole pour créer un pool de connexions MySQL

尚
original
2020-01-09 16:07:212565parcourir

Comment utiliser Swoole pour créer un pool de connexions MySQL

Définition du pool de connexions : ne jamais se déconnecter, ce qui nécessite que notre programme soit un programme résident en mémoire. Le pooling de connexions à la base de données (Connection pooling) est un démarrage de programme Établissez suffisamment de connexions à la base de données lors de l'exécution et formez ces connexions dans un pool de connexions, et le programme demande, utilise et libère dynamiquement les connexions dans le pool.

Méthode d'implémentation du pool de connexions :

Mode de blocage synchrone :

Le pool de connexions peut être implémenté sur la base du module AsyncTask de swoole, avec une programmation simple et aucun problème de synchronisation et de verrouillage des données. Les pools de connexions peuvent même être partagés par plusieurs services. Les inconvénients sont : 1. Il n'est pas aussi flexible que le pool de connexions multithread et ne peut pas augmenter ou diminuer dynamiquement les connexions. 2. Il y a une surcharge de communication inter-processus

Mode Coroutine :

<.>Vous pouvez utiliser Channel pour implémenter le pool de connexions.

Créez 10 exemples de code de connexion MySQL :

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/11/20
 * Time: 14:12
 */
//编写mysql连接池,这个类只能被实例化一次(单例)
class MysqlConnectionPool
{
    private static $instance;//单例对象
    private $connection_num = 10;//连接数量
    private $connection_obj = [];

    //构造方法连接mysql,创建20mysql连接
    private function __construct()
    {
        for($i=0;$i<$this->connection_num;$i++){
            $dsn = "mysql:host=127.0.0.1;dbnane=swoole";
            $this->connection_obj[] =  new Pdo($dsn,&#39;root&#39;,&#39;rootmysql123&#39;);
        }
    }
    private function __clone()
    {
        // TODO: Implement __clone() method.
    }
    public static function getInstance()
    {
        if(is_null(self::$instance)){
            self::$instance = new self();
        }
    }
}
MysqlConnectionPool::getInstance();
//创建swool的http服务器对象
$serv = new swoole_http_server(&#39;0.0.0.0&#39;,8000);
//当浏览器链接点这个http服务器的时候,向浏览器发送helloworld
$serv->on(&#39;request&#39;, function($request,$response){
    //$request包含这个请求的所有信息,比如参数
    //$response包含返回给浏览器的所有信息,比如helloworld

    //(2.3)向浏览器发送helloworld
    $response->end("hello world");
});
//启动http服务器
$serv->start();

Effet

Comment utiliser Swoole pour créer un pool de connexions MySQL

Apprentissage recommandé :

tutoriel swoole

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