¿Cuál es la diferencia entre RPC y REST?

Artículo original: ¿Cuál es la diferencia entre RPC y REST?

77bb0997e4bdf72180a6c1c86262531c.jpeg

fondo

    Muchos estudiantes de desarrollo a menudo no pueden distinguir entre RPC y REST en el trabajo, lo que resulta en una comunicación frecuente en diferentes niveles. Algunos estudiantes incluso consideran que estos dos son la misma cosa.

¿Cuál es la diferencia entre RPC y REST?

Comparar nombres

rpc

descansar

Observación

estilo arquitectónico

RPC es un estilo arquitectónico basado en llamadas a procedimientos que encapsula llamadas a métodos remotos en forma de llamadas a métodos locales, logrando la comunicación entre diferentes procesos o diferentes máquinas.

REST es un estilo arquitectónico basado en recursos, que representa recursos a través de URL y utiliza métodos como GET, POST, PUT y DELETE del protocolo HTTP para operar con recursos.

Una es una arquitectura de llamadas basada en comunicación y la otra está basada en recursos, lo cual es diferente.

carta de acuerdo

RPC generalmente utiliza protocolos binarios más livianos, como Protocol Buffers, Thrift, etc., para mejorar el rendimiento y la eficiencia.

REST utiliza protocolos basados ​​en texto, como HTTP, para permitir la interoperabilidad entre plataformas y idiomas.

Formato de datos

RPC suele utilizar un formato de datos binarios más compacto y eficiente, como Protocol Buffers, para reducir el tamaño de la transferencia de datos y la sobrecarga de la red.

REST suele utilizar formatos de datos basados ​​en texto, como JSON, XML, etc., para presentar los datos de una manera que sea fácil de leer y analizar.

Formulario de interfaz

Las interfaces RPC generalmente definen nombres de métodos, parámetros y tipos de valores de retorno claros, similares a las llamadas a métodos locales, y ocultan los detalles de la comunicación de la red.

La interfaz REST representa operaciones en recursos a través de métodos HTTP y URL, como GET /users, PUT /users/1, etc.

Gestión de estado

RPC no tiene estado, cada solicitud es independiente y el servidor no necesita conservar la información de estado del cliente.

REST tiene estado y el cliente puede mantener y transmitir información de estado mediante mecanismos como sesiones y cookies.

Esto es particularmente importante y muchos estudiantes que han trabajado durante muchos años aún no lo saben. EL DESCANSO es opcional.

¿En qué escenarios se utilizan RPC y REST?

Los escenarios aplicables de RPC incluyen:

  • Sistema distribuido: RPC se puede utilizar para llamadas a métodos entre diferentes procesos o diferentes máquinas para facilitar la comunicación en sistemas distribuidos.

  • Requisitos de alto rendimiento: debido a que RPC utiliza protocolos de comunicación binarios livianos, como Protocol Buffers, puede proporcionar alto rendimiento y eficiencia.

  • Integración del sistema interno: los servicios dentro de una empresa a menudo necesitan llamarse entre sí; el uso de RPC puede simplificar y acelerar el proceso de llamada.

  • Lenguaje fuertemente tipado: RPC se usa ampliamente en lenguajes de programación estáticos y fuertemente tipados, como Java, C++, etc., para admitir mejor la definición y verificación de tipos.

Los escenarios aplicables de REST incluyen:

  • Servicios web: REST es un estilo arquitectónico basado en el protocolo HTTP, que es muy adecuado para crear servicios web y API.

  • Operaciones de recursos: REST utiliza métodos URL y HTTP para representar operaciones en recursos y es adecuado para procesar recursos como agregar, eliminar, modificar y verificar.

  • Multiplataforma y multilenguaje: REST utiliza formatos de datos basados ​​en texto, como JSON y XML, para facilitar el intercambio y análisis de datos entre diferentes plataformas e idiomas.

  • Independiente del estado: la naturaleza sin estado de REST lo hace escalable y distribuido, adecuado para construir sistemas escalables.

  • Separación de front-end y back-end: REST y el desarrollo de front-end a menudo se utilizan juntos para lograr el desacoplamiento y el desarrollo paralelo de front-end y back-end.

por fin

    En las empresas, RPC se usa generalmente para la comunicación entre servicios, como openfegin, pero rest es principalmente una solución basada en recursos, como c++ o python, que necesita llamar a java o comunicarse entre sí. escenarios de plataforma es implementarlo a través de REST. Por supuesto, la mayoría de los rpc también se pueden implementar, porque la mayoría de ellos se comunican a través del protocolo http, siempre que rpc lo admita.

Artículo de referencia:

https://baike.baidu.com/item/%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8/7854346 ?fromtitle=RPC&fromid=609861&fr=aladdin

https://baike.baidu.com/item/RPC%E6%9C%8D%E5%8A%A1%E5%99%A8/617414?fr=ge_ala

https://baike.baidu.com/item/rest/6330506?fr=ge_ala

Supongo que te gusta

Origin blog.csdn.net/qq_16498553/article/details/132002231
Recomendado
Clasificación