RPC y HTTP diferencia

RPC (Remote Procedure Call es decir, Remote Procedure Call ) y  HTTP (Protocolo de transferencia de hipertexto, Hypertext Transfer Protocol ) es la diferencia más esencial entre ellos es que RPC obra mayor en la parte superior del protocolo TCP , mientras que trabaja principalmente en el protocolo HTTP servicio HTTP todos sabemos que en la parte superior del protocolo HTTP es un protocolo de capa de transporte TCP, por lo que la eficiencia de vista, entonces, RPC es, por supuesto, ser superior.

1, servicio RPC

(1) la arquitectura RPC

Una arquitectura de RPC, la cual incluye cuatro componentes principales, que son de cliente, servidor, cliente Stub y el servidor de código auxiliar, Stub podemos entender esto como un trozo. Respectivamente, para hablar de estos componentes:

  • 1) cliente (Cliente), servicios de llamadas.

  •  2) el servidor (Server), un verdadero proveedor de servicios.

  •  3) el stub del cliente, la dirección de almacenamiento del servidor de mensajes, los parámetros de la petición del cliente y luego empaquetados en un mensaje de red, y luego se envían a la red de servicio a través del mando a distancia.

  •  4) la agrupación de servidor, recibir un mensaje enviado desde el cliente, el mensaje es descomprimido y una llamada al método local.

  

 

RPC se utiliza principalmente en las grandes empresas que, por muchas grandes empresas dentro del sistema, la línea de la complejidad del negocio y la eficiencia ventajas de una pieza muy importante, esta vez la ventaja de RPC es más evidente. El desarrollo actual de las cuales es para hacerlo, el uso de Maven para gestionar el proyecto en general. Por ejemplo, tenemos un sistema de procesamiento de orden de servicio, y declaramos todas sus interfaces (esto se refiere específicamente a Java en la interfaz), entonces todo el proyecto será incluida en un paquete frasco, el lado del servidor de la introducción de la segunda biblioteca partido, luego se dio cuenta la función correspondiente, el cliente sólo tendrá que introducir esta biblioteca puede llamar a un segundo interlocutor. ¿Por qué hacer esto? Principalmente para reducir el lado del cliente del tamaño del paquete frasco, porque cada vez que, cuando se envasa en libertad, tarro demasiados paquetes siempre afectará a la eficacia. Además también desacoplar cliente y el servidor y mejorar la portabilidad del código.

(2) llamadas síncronas y asíncronas llamada

  • ¿Qué es una llamada sincrónica?

llamada sincrónica de que el cliente espera de la llamada para realizar completa y devolver los resultados.

  • ¿Qué es una llamada asincrónica?

llamada asincrónica es que el cliente no espera a la llamada para volver a completar la aplicación de los resultados, pero todavía puede recibir una notificación de resultados devueltos por la función de devolución de llamada y así sucesivamente.

Si el cliente no se preocupa por el resultado, puede convertirse en una llamada de una sola vía. Este proceso es algo similar a Java en las interfaces no desembolsadas, y ejecutables, se realizó de forma asíncrona, si usted necesita saber el resultado de la aplicación, puede utilizar la interfaz invocable, y puede llegar a la información asíncrona resultado de la ejecución por clase Futuro. Si no se preocupan por los resultados de la aplicación, de manera directa las interfaces ejecutables en él, ya que no devuelve un resultado, por supuesto, también es posible exigible, Futuro que no lo entiendo.

(3) el marco RPC populares

    RPC marco de código abierto muy popular, o más. Nos centramos en las tres formas siguientes:

      1) GRPC es Google ha lanzado recientemente el software de código abierto, basado en la última HTTP2.0 protocolo y soporta varios lenguajes de programación común.

Sabemos HTTP2.0 se basa en un protocolo de versión binaria mejorada de HTTP, los actuales navegadores más importantes son compatibles para ser a toda velocidad. El marco RPC se basa en la implementación del protocolo HTTP, para apoyar el uso del marco Netty subyacente.

2) Ahorro Facebook es un proyecto de código abierto, es ante todo un marco de desarrollo de los servicios entre diferentes idiomas.

Se IDL archivo de definición tiene un generador de código para generar automáticamente la definición de su marco código de servicio. Mientras el usuario desarrollo secundario en la línea antes de, para las comunicaciones RPC subyacentes son transparentes. Pero esta necesidad de los usuarios a aprender un idioma, entonces las características de un campo en particular, o tener un cierto costo.

       3) Dubbo Ali Group es un marco de código abierto RPC muy conocida que se utiliza ampliamente en muchas empresas de Internet y aplicaciones empresariales.

Y el acuerdo marco de serialización puede ser enchufe y características distintas. La misma interfaz remota se basa en la interfaz de Java, y confiando en la primavera marco para facilitar el desarrollo. Puede ser fácilmente empaquetado en un solo archivo, procesos separados correr, y ahora el concepto de acuerdo micro-servicios.

2, el servicio HTTP

(1) HTTP Interface

 En comparación RPC, HTTP interfaz de desarrollo es lo que suelen decir que para la interfaz de servicio REST. De hecho, gran parte de la interfaz para el caso en que, unos medios de comunicación de la resolución de las islas de información inicial utiliza con frecuencia menos interactúan sistema con el sistema; la ventaja de que un simple , directo , fácil desarrollo . El uso del protocolo de transmisión HTTP existente. Hacer el desarrollo de interfaces de fondo cuando la necesidad de escribir una documentación de la interfaz, identificar lo que es estrictamente para entrada o salida? Dejar claro que cada método de la petición de la interfaz, los parámetros de solicitud, así como los asuntos que requieren atención.
      Como este ejemplo: Enviar http://www.httpexample.com/restful/buyer/info/share
      las interfaces puede devolver una cadena JSON o documento XML. Luego, el cliente regresa de nuevo para hacer frente a esta información, que puede ser desarrollado con relativa rapidez.

Sin embargo, para las grandes empresas, el subsistema más interna que, bajo una gran cantidad de interfaces, los beneficios de los marcos de RPC en el programa,

  • El enlace a larga primero es, no siempre tiene por qué como http comunicación sobre lo que el 3-way handshake, la reducción de sobrecarga de la red;
  • El segundo es el marco RPC generalmente tienen un registro, hay una gran cantidad de seguimiento y gestión;
  • Release, fuera de las interfaces de línea de montaje, la expansión dinámica de la persona que llama no es consciente operación unificada.

(2) reparador:

Correspondiente al estilo chino es el reposo; servicio web reparador es una aplicación común de descanso, el resto está en conformidad con el estilo de los servicios web, servicios web de estilo resto es un ROA (La arquitectura orientada a recursos) ( arquitectura orientada a los recursos ). ¿Por qué hay reparador?
    1) Antes de la operación de reparador:
    http://127.0.0.1/user/query GET consulta basada en los datos de usuario de usuario id
    Post New usuario http://127.0.0.1/user/save
    http://127.0.0.1/user / actualización de POST modificar la información del usuario
    http://127.0.0.1/user/delete GET / POST borrar la información del usuario
    2) el uso de REST:
    http://127.0.0.1/user lo anterior ID Cómo los datos del usuario consulta anteriormente de acuerdo con el usuario
    http: //127.0. 0,1 / usuario crear nuevos usuarios
    http://127.0.0.1/user PUT modificar la información del usuario
    http://127.0.0.1/user eliminar la información de usuario de eliminación
    antes de la operación no es un problema, el gran Dios piensa que hay un problema, lo que tiene problema? interfaz o dirección cada vez que lo solicita, se describe lo están haciendo, por ejemplo, cuando una consulta con la consulta, el nuevo tiempo con los puños, de hecho, no hay necesidad, uso la petición de obtención es a consulta mediante mensaje solicitud, es la nueva petición, mi intención es clara, no hay necesidad de hacerlo descripción, por lo que tienen reparador.

3, Resumen

    servicio RPC y el servicio HTTP está todavía existen muchas diferencias, en general, los servicios RPC sobre todo para las grandes empresas, y el servicio HTTP está dirigida principalmente a las pequeñas empresas, ya mayor eficiencia RPC , y el desarrollo de servicios HTTP será iteraciones rápidas . En resumen, la elección de qué tipo de marco no está de acuerdo con el mercado y decidir lo que es popular, pero para llevar a cabo una evaluación completa de todo el proyecto, tan cuidadosamente comparar el marco de dos de desarrollo para el impacto del proyecto, y finalmente decidir qué es lo mejor para este proyecto. Asegúrese de no utilizar la RPC y RPC con cada proyecto, pero a las condiciones locales, las condiciones específicas.

Publicado 13 artículos originales · ganado elogios 1 · vistas 7802

Supongo que te gusta

Origin blog.csdn.net/weixin_40482816/article/details/104018464
Recomendado
Clasificación