1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-29 10:52:21 +02:00
Files
archived-doc-es/reference/mysqlnd_ms/book.xml
Pedro Antonio Gil Rodríguez 9dcd7c94aa Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@334898 c90b9560-bf6c-de11-be94-00142212c4b1
2014-09-17 15:43:01 +00:00

362 lines
12 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: d976ef507bfa953098069f9c541e49b0529f7d16 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<book xml:id="book.mysqlnd-ms" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Complemento de equilibrado de carga y replicación de mysqlnd</title>
<titleabbrev>mysqlnd_ms</titleabbrev>
<preface xml:id="intro.mysqlnd-ms">
&reftitle.intro;
<para>
El complemento de equilibrado de carga y replicación de mysqlnd (<literal>mysqlnd_ms</literal>)
añade soporte de uso sencillo para la replicación MySQL a todas las extensiones de MySQL para PHP que utilizan
<link linkend="book.mysqlnd">mysqlnd</link>.
</para>
<para>
A partir de la versión 5.3.3 de PHP, el controlador nativo de MySQL para PHP
(<literal>mysqlnd</literal>)
ofrece una API en C de complementos internos. Los complementos en C, como el complemento de
replicación y equilibrado de carga, pueden extender la funcionalidad de
<link linkend="book.mysqlnd">mysqlnd</link>.
</para>
<para>
El controlador nativo de MySQL para PHP es una biblioteca en C que acompaña a
PHP a partir de PHP 5.3.0. Sirve como un sustituto a corto plazo de la
Biblioteca Cliente de MySQL (libmysqlclient). El uso de mysqlnd tiene
varias ventajas: no son necesarias descargas extra debido a que está incluido con PHP,
está bajo la licencia de PHP, hay menor consumo de memoria en ciertos casos, y
contiene nueva funcionalidad, como consultas asíncronas.
</para>
<para>
Los complementos de mysqlnd como <literal>mysqlnd_ms</literal> operan, en mayor parte,
de forma transparente desde la perspectiva del usuario. El complemento de replicación y equilibrado
de carga admite todas las aplicaciones de PHP y todas las extensiones de MySQL para PHP.
No cambia las APIs existentes. Por lo tanto, se puede usar fácilmente con
las aplicaciones de PHP existentes.
</para>
<section xml:id="mysqlnd-ms.key-features">
<title>Características principales</title>
<para>
Las características principales de PECL/mysqlnd_ms son las siguientes:
</para>
<para>
<itemizedlist>
<listitem>
<para>
Es transparente y, por lo tanto, fácil de usar.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Admite todas las extensiones de MySQL para PHP.
</para>
</listitem>
<listitem>
<para>
Admite SSL.
</para>
</listitem>
<listitem>
<para>
Es una <acronym>API</acronym> consistente.
</para>
</listitem>
<listitem>
<para>
Se requieren pocos cambios o ningún cambio en la aplicación, dependiendo del escenario de uso requerido.
</para>
</listitem>
<listitem>
<para>
Conexiones retardadas: las conexiones a servidores maestros y esclavos no se
abren antes de que se ejecute una sentencia SQL.
</para>
</listitem>
<listitem>
<para>
Opcional: uso automático del maestro después de la primera escritura en una petición web, para
disminuir el posible impacto de la demora de la replicación.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Se puede usar con cualquier solución de clúster MySQL.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Replicación MySQL: La división de lectura-escritura la realiza el complemento.
Es el foco primario del complemento.
</para>
</listitem>
<listitem>
<para>
Clúster MySQL: La división de lectura-escritura se puede deshabilitar.
Es posible la configuración de múltiples maestros.
</para>
</listitem>
<listitem>
<para>
Soluciones de terceros: el complemento está optimizado para la Replicación MySQL,
pero se puede usar con cualquier otro tipo de solución de clúster MySQL.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Estrategias destacadas de la división de lectura-escritura.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Detección automática de SELECT.
</para>
</listitem>
<listitem>
<para>
Admite sugerencias SQL para invalidar el automatismo.
</para>
</listitem>
<listitem>
<para>
Definido por el usuario.
</para>
</listitem>
<listitem>
<para>
Se puede deshabilitar, por ejemplo, al usar un clúster sincrónico, como el Clúster MySQL.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Estrategias destacadas del equilibrado de carga.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Rotación: elegir un esclavo diferente, de un modo 'round bobin', en cada petición a los esclavos.
</para>
</listitem>
<listitem>
<para>
Aleatorio: elegir un esclavo aleatorio en cada petición a los esclavos.
</para>
</listitem>
<listitem>
<para>
Aleatoiro una vez (adhesión): elegir un esclavo aleatorio una vez para ejecutar todas las peticiones a los esclavos durante toda una petición web.
</para>
</listitem>
<listitem>
<para>
Definido por el usuario. La aplicación puede registrar llamadas de retorno con mysqlnd_ms.
</para>
</listitem>
<listitem>
<para>
PHP 5.4.0 o superior: consideración de transacciones al usar solamente llamadas a la API para controlar transacciones.
</para>
</listitem>
<listitem>
<para>
Equilibrado de carga ponderado: a los servidores se les pueden asignar diferentes propiedades, por ejemplo, para
dirigir más peticiones a una máquina potente que a otra menos potente. O para
elegir máquinas cercanas para reducir la latencia.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
ID de transacciones global.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Emulación en el lado del cliente. Hace más sencilla la tolerancia a fallos manual del servidor maestro y la promoción de esclavos
con clústeres asíncronos, como la Repliación MySQL.
</para>
</listitem>
<listitem>
<para>
Soporte para la característica del identificador de transacciones global interno de MySQL 5.6.5 o superior.
</para>
</listitem>
<listitem>
<para>
Soporte del uso de IDs de transacciones para identificar esclavos asíncronos actualizados
para lectura cuando se necesite consistencia de sesión. Observe las restricciones
mencionadas en el manual.
</para>
</listitem>
<listitem>
<para>
Estrangulamiento: opcionalmente, el complemento puede esperar a que un esclavo se convierta en "sincrónico" antes
de continuar.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Niveles de servicio y de consistencia.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Las aplicaciones puede solicitar para las conexiones niveles de servicios
de consistencia final, de sesión y fuerte. Los nodos adecuados de clústeres
se buscarán automáticamente.
</para>
</listitem>
<listitem>
<para>
Los accesos a un esclavo de Replicación MySQL de consistencia final pueden ser reemplazados
por accesos rápidos a la caché local de forma transparente para reducir la carga del servidor.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
Particionamiento y fragmentación
</para>
<para>
<itemizedlist>
<listitem>
<para>
Los servidores de un clúster de réplica pueden estar organizados en grupos. Se pueden
usar las sugerencias SQL para dirigir manualmente consultas a un grupo específico.
La agrupación se puede usar para particionar (fragmentar) los datos, o para paliar problemas de
hotspots con actualizaciones.
</para>
</listitem>
<listitem>
<para>
Los filtros de Replicación de MySQL están soportados a través del filtro de tabla.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>
MySQL Fabric
</para>
<para>
<itemizedlist>
<listitem>
<para>
Se incluye <link linkend="mysqlnd-ms.quickstart.mysql_fabric">soporte experimental</link>
para MySQL Fabric.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section xml:id="mysqlnd-ms.limitations">
<title>Limitaciones</title>
<para>
El mecanismo interno de división de lectura-escritura es muy básico. Cada
consulta que comience con <literal>SELECT</literal>
es considerada una petición de lectura para enviarla a un servidor esclavo de MySQL.
Todas las demás consultas (como las sentencias <literal>SHOW</literal>)
son consideradas como peticiones de escritura que son enviadas al servidor maestro de MySQL.
El comportamiento interno se puede invalidar usando las
<link linkend="mysqlnd-ms.constants">sugerencias SQL</link>, o una
<link linkend="ini.mysqlnd-ms-plugin-config-v2.filter-user">función de llamada de retorno</link> definida por el usuario.
</para>
<para>
El divisor de lectura-escritura no considera las sentencias múltiples. Éstas
son consideradas como una única sentencia. La decisión de dónde ejecutar la sentencia
se basará en el comienzo de la dicha sentencia. Por ejemplo, si
se usa <function>mysqli_multi_query</function>
para ejecutar la sentencia múltiple <literal>SELECT id FROM test ; INSERT INTO test(id) VALUES (1)</literal>,
ésta será redirigida a un servidor esclavo debido a que comienza con
<literal>SELECT</literal>. La sentencia <literal>INSERT</literal>, la cual es
también parte de la sentencia múltiple, no será redirigida a un servidor maestro.
</para>
<note>
<para>
Las aplicaciones deben considerar las consecuencias de los intercambios de conexión que se
realizan para el equilibrado de carga. Revise la documentación sobre
<link linkend="mysqlnd-ms.pooling">intercambio y agrupación de conexiones</link>,
<link linkend="mysqlnd-ms.transaction">manejo de transacciones</link>,
<link linkend="mysqlnd-ms.failover">tolerancia a fallos</link>
<link linkend="mysqlnd-ms.loadbalancing">equilibrado de carga</link> &listendand;
<link linkend="mysqlnd-ms.rwsplit">división de lectura-escritura</link>.
</para>
</note>
</section>
<section xml:id="mysqlnd-ms.name">
<title>Sobre el nombre</title>
<para>
La abreviatura <literal>mysqlnd_ms</literal>
significa <literal>complemento maestro esclavo de mysqlnd</literal>. El nombre
fue elegido por una rápida y desordenada prueba de conceptos. Al principio,
los desarrolladores no esperaban que se continuase usando el código base.
</para>
</section>
</preface>
&reference.mysqlnd-ms.quickstart;
&reference.mysqlnd-ms.concepts;
&reference.mysqlnd-ms.setup;
&reference.mysqlnd-ms.constants;
&reference.mysqlnd-ms.reference;
&reference.mysqlnd-ms.changes;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->