Manuel:$wgLBFactoryConf

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgLBFactoryConf and the translation is 86% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎中文 • ‎日本語
Équilibrage de charge: $wgLBFactoryConf
Configuration de l'usine d'équilibrage de charge.
Introduit dans la version :1.13.0 (r32578)
Retiré dans la version :Encore utilisé
Valeurs autorisées :(tableau)
Valeur par défaut :[ 'class' => \Wikimedia\Rdbms\LBFactorySimple::class ] (1.31-)
[ 'class' => 'LBFactorySimple' ] (1.13-1.30)

Détails

Pour mettre en place une ferme de wikis multi-maîtres, mettez la classe ici à quelque chose qui peut renvoyer un LoadBalancer avec un maître approprié sur un appel à getMainLB().

La classe identifiée ici est responsable de lire $wgDBservers , $wgDBserver , etc., donc l'écraser peut faire que ces variables globales sont ignorées.

La classe LBFactory_Multi est fournie dans ce but; la configuration pour cette classe est fournie ci-dessous:

Avertissement Avertissement : Si vous utilisez cette classe, tous les paramètres précédents comme $wgDBservers , $wgExternalServers , ... seront ignorés.
sectionsByDB
Une carte de noms de bases de données vers des noms de section
sectionLoads
Une carte 2D. Pour chaque section, donner une carte de noms de serveurs vers les ratios de charge. Par exemple: array( 'section1' => array( 'db1' => 100, 'db2' => 100 ) )
serverTemplate
Un tableau associatif d'information de serveur, comme documenté pour $wgDBservers. L'hôte, le hostName et les entrées de charge seront écrasés.
groupLoadsBySection
Une carte 3D donnant les ratios de charge de serveur pour chaque section et groupe. Par exemple: array( 'section1' => array( 'group1' => array( 'db1' => 100, 'db2' => 100 ) ) )
groupLoadsByDB
Une carte 3D donnant les ratios de charge de serveur par nom de base de données.
hostsByName
Une carte de noms d'hôte vers les adresses IP.
externalLoads
Une carte des noms de grappe de stockage externe vers la carte de charge du serveur.
externalTemplate
Une structure d'information du serveur utilisée pour les serveurs de stockage externe.
templateOverridesByServer
Une carte 2D écrasant mainTemplate ou externalTemplate sur une base serveur par serveur.
templateOverridesByCluster
Une carte 2D écrasant externalTemplate par grappe
masterTemplateOverrides
Un tableau d'annulation pour mainTemplate et externalTemplate pour tous les serveurs maître.

Simple Examples

3 wikis all using localhost as db server

Here is how a simple configuration would work, where you have three wikis (wikidb1, wikidb2 and wikidb3), all of which using the same database server (but with different database names), and all of them having a single master server which is the same as your webserver (localhost)

$wgDBuser = 'your db username'; //must be same for all 3 wikis in this simplified setup
$wgDBpassword = 'pass'; // Same pass must be usable for all 3 wikis
$wgLBFactoryConf = array(

'class' => 'LBFactoryMulti',

'sectionsByDB' => array(
    'wikidb1' => 's1', // Assumes db name for first wiki is wikidb1
    'wikidb2' => 's1', // and so on.
    'wikidb3' => 's1',
),

'sectionLoads' => array(
    's1' => array(
        'localhost'  => 0, // All on section s1, which has single master, at localhost.
    ),
),


'serverTemplate' => array(
    'dbname'      => $wgDBname,
    'user'          => $wgDBuser,
    'password'      => $wgDBpassword,
    'type'          => 'mysql',
    'flags'          => DBO_DEFAULT,
    'max lag'      => 30,
),
);

3 wikis using different hosts as db and one slave database

Say your wiki has grown a bit. Lets say you want to separate your db server from your webserver. And you have a slave server for which you have set up replication. And you now put wikidb3 on an entirely separate server.

So say we have wikidb1 and wikidb2 share a master server (db1) and a slave replica (db2). Wikidb3 has its own db server db3 (and no slave). You would do something like:

$wgDBuser = 'your db username'; //must be same for all 3 wikis in this simplified setup
$wgDBpassword = 'pass'; // Same pass must be usable for all 3 wikis
$wgLBFactoryConf = array(

'class' => 'LBFactoryMulti',

'sectionsByDB' => array(
    'wikidb1' => 's1', // Assumes db name for first wiki is wikidb1
    'wikidb2' => 's1', // and so on.
    'wikidb3' => 's2',
),

'sectionLoads' => array(
    's1' => array(
        'db1'  => 0,
        'db2'  => 50, /* the 50 is the weight (of slave servers). Would matter if you had multiple */
    ),
    's2' => array(
        'db3' => 0
    ),
),


'serverTemplate' => array(
    'dbname'      => $wgDBname,
    'user'          => $wgDBuser,
    'password'      => $wgDBpassword,
    'type'          => 'mysql',
    'flags'          => DBO_DEFAULT,
    'max lag'      => 30,
),
);

Configuration de Wikimedia

Pour voir comment Wikimedia utilise $wgLBFactoryConf pour configurer ses wikis, voyez:

Wikimedia configuration uses also $wgCdnReboundPurgeDelay .