Manual:$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 100% complete.
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎polski • ‎中文 • ‎日本語
LoadBalancer-instellingen: $wgLBFactoryConf
Laadbalancer-fabrieksconfiguratie.
Geïntroduceerd in versie:1.13.0 (r32578)
Verwijderd in versie:nog steeds in gebruik
Toegelaten waardes:(array)
Standaardwaarde:(Zie onder.)

Details

Om een multi-master wiki farm op te zetten, zet de klas hier op iets dat een Wikimedia\Rdbms\LBFactory met een geschikte master op een oproep naar getMainLB() kan terugsturen. De hier geïdentificeerde klasse is verantwoordelijk voor het lezen van $wgDBservers , $wgDBserver , etc., dus het kan ertoe leiden dat die globalen genegeerd worden.

De Wikimedia\Rdbms\LBFactoryMulti klasse is voor dit doel voorzien, de configuratie voor deze klasse is hieronder weergegeven:

Waarschuwing Waarschuwing: Als je deze klasse gebruikt, zullen alle eerdere instellingen zoals $wgDBservers , $wgExternalServers , ... genegeerd worden.
sectionsByDB
Een mapping met databasenamen naar sectienamen
sectionLoads
Een 2d mapping. Geeft voor elke sectie een mapping met servernamen om de laadverhoudingen te bepalen. Bijvoorbeeld: array( 'section1' => array( 'db1' => 100, 'db2' => 100 ) )
serverTemplate
Een server info associatieve array zoals gedocumenteerd voor $wgDBservers. De host, hostName en load entries zullen worden overschreven.
groupLoadsBySection
Een 3-d mapping die de serverbelasting voor elke sectie en groep aangeeft. Bijvoorbeeld: array( 'section1' => array( 'group1' => array( 'db1' => 100, 'db2' => 100 ) ) )
groupLoadsByDB
Een 3-d mapping die de belastingsratio's van de server aangeeft op naam van de DB.
hostsByName
Een mapping van hostnaam naar IP-adres
externalLoads
Een mapping met de naam van een extern opslagcluster om de mapping van de server te laden
externalTemplate
Een serverinfo-structuur die wordt gebruikt voor externe opslagservers
templateOverridesByServer
Een 2d mapping die de mainTemplate of externeTemplate op een server-per-server basis overschrijft.
templateOverridesByCluster
Een 2d mapping die externalTemplate per cluster overschrijft
masterTemplateOverrides
Een override array voor mainTemplate en externalTemplate voor alle master servers.

Standaardwaarden

MediaWiki versie:
1.31
$wgLBFactoryConf = [ 'class' => \Wikimedia\Rdbms\LBFactorySimple::class ];
MediaWiki versie:
1.23 – 1.30
$wgLBFactoryConf = [ 'class' => 'LBFactorySimple' ];
MediaWiki versie:
1.13 – 1.22
$wgLBFactoryConf = array( 'class' => 'LBFactory_Simple' );

Simpele voorbeelden

3 wiki's die allemaal localhost gebruiken als db server

Hier is hoe een eenvoudige configuratie zou werken, waarbij u drie wiki's (wikidb1, wikidb2 en wikidb3) hebt, die allemaal dezelfde databaseserver gebruiken (maar met verschillende databasenamen), en die allemaal een enkele hoofdserver hebben die hetzelfde is als uw 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 wiki's die verschillende hosts gebruiken als db en één slavedatabase

Laten we zeggen dat je wiki een beetje is gegroeid. Laten we zeggen dat u uw db-server wilt scheiden van uw webserver. En je hebt een slave server waarvoor je replicatie hebt opgezet. En je zet nu wikidb3 op een volledig aparte server.

Stel dat we wikidb1 en wikidb2 een hoofdserver (db1) en een slave replica (db2) delen. Wikidb3 heeft zijn eigen db-server db3 (en geen slave). Je zou zoiets doen als:

$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,
),
);

Wikimedia-configuratie

Om te zien hoe Wikimedia $wgLBFactoryConf gebruikt om haar wiki's te configureren, zie:

Wikimedia configuratie gebruikt ook $wgCdnReboundPurgeDelay .