Red de conocimiento informático - Conocimiento del nombre de dominio - Invocación de microservicio en varios idiomas (extracto)

Invocación de microservicio en varios idiomas (extracto)

La arquitectura de microservicios se ha convertido en la tendencia de desarrollo de la arquitectura de Internet, y las discusiones sobre microservicios también han ocupado la mayor parte del espacio en varias conferencias técnicas. El marco de gobernanza de servicios más utilizado en China es dubbo de código abierto de Alibaba. Chacha.com también eligió dubbo como su marco de gobernanza de microservicios. Por otro lado, como la mayoría de las empresas de Internet, los lenguajes de desarrollo de Chacha.com también están diversificados. La mayoría de los negocios de back-end son compatibles con Java y cada línea de negocio tiene derecho a elegir su propio lenguaje de desarrollo, lo que conduce a nodejs. python, go y otros problemas de llamadas en varios idiomas.

Las llamadas en varios idiomas son un tema importante y una tarea técnica muy desafiante. Las siguientes soluciones se mencionan a menudo en la industria, por lo que también podríamos hablar de ellas:

Cuándo. Hablamos de llamadas entre idiomas, ¿de qué estamos hablando? Al observar algunas de las soluciones más comunes y maduras mencionadas anteriormente, podemos concluir que no existen más que las siguientes dos ideas para resolver llamadas entre idiomas:

Si un nuevo equipo se enfrenta a una selección de tecnología, Creo que todas las soluciones anteriores se pueden incluir en el alcance de referencia, teniendo en cuenta la compatibilidad de los sistemas heredados

El costo de migración de los sistemas antiguos

Esta también es una selección clave factor. Primero intentamos trabajar en el protocolo RPC.

Soporte multilingüe para protocolos comunes

Los buenos tiempos de Springmvc

Springmvc

Springmvc

En progreso Antes de las verdaderas llamadas en varios idiomas, la mayoría de las personas que querían ser "en varios idiomas" usaban .NET Framework. La solución es utilizar .alibaba.dubbo.remoting.exchange.Response

ID de invocación: ID de mensaje, tipo largo. La identificación única de cada solicitud (debido a la comunicación asincrónica, utilizada para hacer coincidir las solicitudes y las respuestas devueltas)

longitud del cuerpo: longitud del cuerpo del mensaje, tipo int, es decir, cuántos bytes del contenido del cuerpo se registran

contenido del cuerpo: serialización abstracta de parámetros de solicitud y parámetros de respuesta

contenido del cuerpo: parámetros de solicitud y parámetros de respuesta

contenido del cuerpo: parámetros de solicitud y parámetros de respuesta.

La información del protocolo termina en bytes y se transmite mediante tcp. Cualquier lenguaje que admita módulos de red y tenga funciones de encapsulación como sockets no tendrá problemas para comunicarse. Entonces, ¿cuáles son las dificultades en el cruce de idiomas? En términos de llamar a Java desde otros lenguajes, existen dos dificultades principales:

ps: demostración de comunicación del protocolo dubbo (/lexburner/Dubbojs-Learning)