Dubo y el cuidador del zoológico
Dubbo implementa llamadas de servicio a través de RPC, es decir, el cliente y el servidor comparten una interfaz (convierta la interfaz en un paquete jar e introduzca el paquete jar en el cliente y el servidor. El cliente escribe llamadas). para la interfaz y el servidor Al final escribe la implementación de la interfaz y la comunicación de red en el medio es implementada por el marco.
Echemos un vistazo a la declaración de configuración de Spring para exponer el servicio, archivo proveedor.xml.
Echemos un vistazo al archivo consumer.xml del consumidor del servicio.
Esta es una típica llamada de servicio punto a punto. Por supuesto, para lograr alta disponibilidad, podemos configurar múltiples proveedores de servicios en consumer.xml y configurar estrategias de equilibrio de carga de respuesta.
Para configurar varias personas que llaman al servicio, agregue varias direcciones en el atributo URL de la etiqueta dubbo:reference en consumer.xml, separadas por punto y coma; para configurar la política de equilibrio de carga, simplemente agregue varias direcciones en comsumer.xml; Agregue el atributo de equilibrio de carga a la etiqueta dubbo:reference. Los valores pueden ser de los siguientes cuatro tipos:
Entonces, ¿cuál es el problema con la arquitectura actual?
1. Cuando el proveedor de servicios agrega un nodo, es necesario modificar el archivo de configuración.
2. Cuando uno de los proveedores de servicios deja de funcionar, el consumidor del servicio no puede detectarlo a tiempo y enviará una solicitud al servicio caído.
En este momento es necesario introducir un centro de registro. Dubbo actualmente admite cuatro tipos de centros de registro (multidifusión, zookeeper, redis y simple). Se recomienda el centro de registro de Zookeeper. Para usar el registro, simplemente cambie proveedor.xml y consumidor.xml de la siguiente manera:
Si ZooKeeper es un clúster, se pueden separar varias direcciones con comas.
Eliminar el modo de conexión directa configurado en consumer.xml
¿Cómo guardar la información de registro en zookeeper?
Después de iniciar el servicio anterior, observamos que el nodo raíz de zookeeper tiene un nodo dubbo y otros nodos, como se muestra a continuación.
¿Por qué la dirección del servicio en el último nodo está marcada en verde? Debido a que el último nodo es un nodo temporal y los otros nodos son nodos persistentes, cuando el servicio deja de funcionar, este nodo desaparecerá automáticamente y ya no proporcionará servicios, y los consumidores de servicios no volverán a solicitarlos. Si se implementan varios servicios de demostración, habrá varios nodos bajo proveedores y cada nodo guardará una dirección de servicio del servicio de demostración.
De hecho, un clúster de zookeeper puede ser compartido por múltiples aplicaciones, porque diferentes marcos construirán diferentes nodos en zookeeper sin afectarse entre sí. Por ejemplo, dubbo creará un nodo /dubbo y storm creará un nodo /storm.
Introducción a Zookeeper:
Zookeeper es un subproyecto de Apacahe Hadoop. Es un servicio de directorio de árbol que admite cambios. Es adecuado como centro de registro para servicios Dubbo. Tiene alta resistencia industrial y puede utilizarse en entornos de producción. sugerencia.
Descripción del proceso:
Admite las siguientes funciones:
Suplemento:
¿Qué marco de serialización utiliza el protocolo de Dubbo?
Dubbo tiene muchos protocolos y diferentes protocolos utilizan diferentes marcos de serialización de forma predeterminada. Por ejemplo, el protocolo dubbo usa la serialización Hessian2 de forma predeterminada (Nota: Hessian2 es el desarrollo secundario de Ali basado en Hessian, llamado Hessian2).
El protocolo Rmi utiliza de forma predeterminada la serialización local de Java, blogs.com/iisme/p/10620125.html.