Cómo usar Gearman para la computación distribuida

  

En general, la integración entre el multi-idioma y el multi-sistema es un gran problema. En general, la gente usará el servicio web para tratar tales problemas de integración, sin importar el estilo. El servicio web, como el estilo RPC o el estilo REST, tiene su propia complejidad. En contraste, Gearman puede lograr un efecto similar y es más fácil de usar. El procesamiento de una solicitud de Gearman implica tres roles: Cliente -> Trabajo -> Trabajador. Cliente: El originador de la solicitud, que puede ser C, PHP
, Perl, MySQL UDF, etc. Trabajo: el despachador de la solicitud, responsable de coordinar el envío de solicitudes del Cliente al Trabajo apropiado. Trabajador: El manejador de la solicitud, que puede ser C, PHP, Perl, etc. Debido a que el Cliente, Worker no restringe el uso del mismo idioma, es propicio para la integración entre el multi-idioma y el multi-sistema. Incluso agregando más trabajadores, podemos implementar fácilmente una arquitectura de equilibrio de carga distribuida para la aplicación. Veamos cómo instalar y ejecutar un ejemplo. Bajo las condiciones limitadas, ejecutamos las tres funciones Cliente, Trabajo y Trabajador en un servidor: Instalar el servidor y la biblioteca Gearman: wget http://launchpad.net/gearmand/trunk/0.8 /+download/gearmand-0.8.tar.gztar zxf gearmand-0.8.tar.gzcd gearmand-0.8./configuremakemake Instalar la extensión PHP de Gearman: wget http://pecl.php.net/get/gearman-0.4.0. Tgztar zxf gearman-0.4.0.tgzcd gearman-0.4.0phpize./configuremakemake install Edite el archivo de configuración php.ini para cargar el módulo correspondiente y hacerlo efectivo: extension = " gearman.so " Iniciar trabajo: gearmand -d si el usuario actual es Para root, debe hacer esto: geomand -d -u root usará el puerto 4730 de forma predeterminada, que se usará a continuación. Nota: Si no puede encontrar la ruta al comando gearand, no olvide confirmar con whereis gearmand. Escriba el contenido del archivo Worker: worker.php de la siguiente manera: <? Php $ worker = new GearmanWorker (); $ worker- > addServer ('127.0.0.1', 4730); $ worker- > addFunction ('reverse', ' My_reverse_function '); while ($ worker- > work ()); function my_reverse_function ($ job) {return strrev ($ job- > workload ());}? ≫ Establezca el fondo para ejecutar el trabajo: php worker.php & Escriba el archivo Cliente: client.php de la siguiente manera: <? Php $ client = new GearmanClient (); $ client- > addServer ('127.0.0.1', 4730); echo $ client- > do ('reverse' , 'Hello World!'), &Quot; \\ n ";? ≫ Ejecutar client: php client.php output:! DlroW olleH Por conveniencia, Worker, Client usa PHP, pero esto no afecta la demostración En aplicaciones prácticas, puede integrar Worker, Client en diferentes idiomas a través de Gearman. Quizás aún desee entender la función de equilibrio de carga mencionada anteriormente: muy simple, solo agregue más de un trabajador, puede escribir varios archivos similares de acuerdo con la forma de worker.php, y configurar diferentes valores de retorno para Identificar la presentación. Luego, inicie estos archivos de Trabajador a su vez y use client.php varias veces para solicitar, encontrará que el Trabajo reenviará la solicitud del Cliente a un Trabajador diferente. Herramientas de la línea de comandos Si cree que instalar algo como PHP es demasiado problemático, también puede experimentar la funcionalidad de Gearman con solo usar la herramienta de la línea de comandos: Iniciar Worker: gearman -w -f wc - wc -l &Ejecutar Cliente: gearman -f wc < /etc /passwd Referencia específica a la documentación oficial, hay algunos PDF buenos.

Copyright © Conocimiento de Windows All Rights Reserved