Conozca Dubbo desde cero
[TOC]
1. ¿Qué es Dubbo?
Apache Dubbo es un marco Java RPC de alto rendimiento.
Dubbo es un marco de servicios distribuido dedicado a proporcionar soluciones de llamadas de servicios remotos RPC transparentes y de alto rendimiento y soluciones de gobernanza de servicios SOA. En pocas palabras, dubbo es un marco de servicios. Si no hay necesidad de distribución, en realidad no hay necesidad de usarlo. Solo cuando se distribuye, se necesita un marco de servicios distribuido como dubbo, y es esencialmente. una llamada de servicio Dongdong, para decirlo sin rodeos, es un marco distribuido para invocaciones de servicios remotos (dígale adiós a WSdl en el modelo de servicio web, regístrese en dubbo como servidor y consumidor).
2. ¿Qué puede hacer Dubbo?
Dubbo utiliza un método de configuración de Spring completo para acceder de forma transparente a las aplicaciones. No hay intrusión de API en la aplicación. Solo necesita usar Spring para cargar la configuración de Dubbo. Basado en la extensión Schema de Spring.
3.Arquitectura Dubbo
Descripción del rol del nodo:
Proveedor: Proveedor de servicios que expone servicios.
Consumidor: El consumidor del servicio que llama al servicio remoto.
Registro: Centro de registro para registro y descubrimiento de servicios.
Monitor: Un centro de monitoreo que cuenta los tiempos de llamadas de servicio y tiempos de llamadas.
Contenedor: El servicio ejecuta el contenedor.
Descripción de la relación de llamada:
4. Cómo usar Dubbo
Dubbo adopta el método de configuración completo de Spring para acceder de forma transparente a la aplicación sin ninguna intrusión de API en la aplicación. , simplemente use Spring para cargar la configuración de Dubbo según la extensión Schema de Spring.
Si no desea utilizar la configuración de Spring, puede llamarla a través de API (estilo de anotación, no recomendado)
Descargue e instale el centro de registro de Zookeeper (no se recomienda multidifusión)
1. Windows
Dirección de descarga: https://www.apache.org/dyn/closer.cgi/zookeeper/
Cómo utilizar: Descargar y descomprimir, ingresar el archivo descomprimido directorio y ejecute zkServer.cmd para iniciar el Centro de servicios de registro
Captura de pantalla:
2.MacOS
Dirección de descarga: https://www.apache.org/ dyn/closer.cgi/zookeeper/
Cómo utilizar: descargue y descomprima, ingrese al directorio de descompresión y ejecute zkServer.sh start para iniciar el centro de servicio de registro
3.Linux
Dirección de descarga: https://www.apache.org/dyn/closer.cgi/zookeeper/
Cómo utilizar: Descargue y descomprima, ingrese al directorio descomprimido y ejecute zkServer. sh start para iniciar el centro de servicios de registro
Proveedor de servicios
1. Defina la interfaz del servicio (la interfaz debe empaquetarse por separado y compartirse entre el proveedor de servicios y el consumidor) p>
DemoService.java
2. Interfaz de implementación del proveedor de servicios: (ocultar la implementación al consumidor del servicio)
DemoServiceImpl.java
dubbo-provider. xml:
4. Cargue Spring Configure e inicie el servicio:
Provider.java:
O use springBoot para iniciar
Servicio consumidor:
applicationContext-dubbo.xml Registre la interfaz que necesita llamar.
1. Haga referencia al servicio remoto a través de la configuración de Spring
dubbo-consumer.xml:
2. Cargue la configuración de Spring y llame al servicio remoto: p>
Consumer.java
O comience a usar springBoot
y agregue la interfaz relajante correspondiente para proporcionar acceso a la interfaz
Modifique la página de índice correspondiente p>
3.Página de administración de Dubbo:
Después del inicio, visite http://localhost:8080/dubbo-admin/
Ingrese la contraseña de la cuenta root/root p>
Página de aplicación:
Página del proveedor:
Página del consumidor:
Página de servicio:
Si la prueba fue exitosa , solo verifique si el estado es normal, está bien...
proveedor-log:
5. Problemas que puede encontrar al usar Dubbo
1 org.springframework.beans. factory.BeanCreationException
Análisis de causa:
Solución
2. org.apache.dubbo.rpc.RpcException
Análisis de causa
Solución
Puede deberse a que los proveedores no están iniciados o que el servicio expuesto por el proveedor está deshabilitado. Simplemente inicie los proveedores o desactívelos.
3. java. lang.IllegalStateException
Análisis de causa
Solución
Para resumir los dos puntos anteriores, en términos simples, significa reiniciar el proyecto (tal vez debido a la modificación directa del código, la recarga del proyecto) y después de conectarse a la base de datos (iniciar sesión, etc.), apareció el mensaje de error anterior. La razón es que cuando se reinicia Tomcat, el hilo del Tomcat anterior no se ha cerrado por completo y esta excepción se informará cuando se inicie el último Tomcat.
4. org.apache.dubbo.remoting.TimeoutException
Análisis de causa
Solución
Agregar dubbo-provider.xml Tiempo de espera