Bonjour la liste, Peut-être regarder du coté de MariaDB Galera Cluster ?
Tu fais tout en local et ta DB est identique entre tout tes "masters"... Un peu simple comme réponse mais ça te donnera peut être des idées différentes pour scaler ( désolé du franglicisime ). My 2cents, Tristan. Le 09/09/2013 15:17, Frédéric de Villamil a écrit : > Bonjour, > > Pour la répartition de charge sur MySQL, nous sommes partis sur > plusieurs choses : > > Côté applicatif, séparation des requêtes lecture / écriture au niveau de > notre framework de connexion à la base de données avec deux handlers, un > pour les écritures et un pour les lectures. > > Côté infrastructure : > - Un master avec une VIP de réplication, du heartbeat et un script de > bascule de la réplication en cas de crash du master. > - Un load balancer avec une VIP pour la lecture, avec heartbeat + haproxy > * des slaves derrière le haproxy > * un script qui check le seconds_behind_master du show slave status et > retire les slaves de la grappe en cas de seconds_behind_master > 0 > * le master en backup si aucun slave n'est disponible > > Comme nous sommes tributaires d'un délai de réplication de l'ordre de la > seconde, nous gérons en plus les retards de réplication au niveau > applicatif quand celui-ci tente d'accéder à un objet qui n'existe pas > encore sur le slave, en postposant la requête d'une seconde. > > Hope it helps > > Le 9 sept. 2013 à 15:10, Thomas Pedoussaut <tho...@pedoussaut.com > <mailto:tho...@pedoussaut.com>> a écrit : > >> Pour la partie repartition de charge entre les slaves, j'utilise >> depuis des années (2006) du LVS géré par keepalived. >> >> En particulier une partie intéressante: >> MISC_CHECK { # MISC healthchecker >> misc_path <STRING>|<QUOTED-STRING> # External system >> script or program >> misc_timeout <INTEGER> # Script execution timeout >> >> # If set, exit code from healthchecker is used >> # to dynamically adjust the weight as follows: >> # exit status 0: svc check success, weight >> # unchanged. >> # exit status 1: svc check failed. >> # exit status 2-255: svc check success, weight >> # changed to 2 less than exit status. >> # (for example: exit status of 255 would set >> # weight to 253) >> misc_dynamic >> >> Donc en jouant bien sur ton script de monitoring, tu peux ejecter les >> serveurs trop en retard, et alterer le poids de chaque serveur en >> fonction de la charge. >> >> En faisant du lvs-dr ca depotte pas mal, meme avec une dizaine de >> slaves, sans SPOF. >> >> >> On 2013-09-09 09:45, Greg wrote: >>> Bonjour, >>> >>> pour l'instant je n'ai pas trouvé mieux qu'une gestion coté >>> applicatif pour répartir les requêtes de lecture (SELECT...) sur les >>> slaves MySQL, et les requêtes d'écritures sur le master, avec gestion >>> un peu plus intelligente qu'un simple load-balancer : >>> - regex sur la requête pour pouvoir l'orienter >>> - gestion des slaves down, spares >>> - exclusion des slaves ayant trop de délais de réplication >>> >>> Pour tout ça MySQL Proxy semblait tout faire sur le papier, à l'aide >>> de scripts LUA >>> : http://dev.mysql.com/doc/relnotes/mysql-proxy/en/index.html >>> >>> Avez vous des retours sur cet outil ? Où sur d'autres outils ? >>> >>> Greg >>> >>> >>> _______________________________________________ >>> Liste de diffusion du FRsAG >>> http://www.frsag.org/ >> >> _______________________________________________ >> Liste de diffusion du FRsAG >> http://www.frsag.org/ > > -- > Frédéric de Villamil / @fdevillamil > I'm not strange, weird, off, nor crazy, my reality is just different > from yours. > Le Rayon UX – http://t37.net > > > > _______________________________________________ > Liste de diffusion du FRsAG > http://www.frsag.org/ >
0x78672493.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/