2009-06-07 52 views

Respuesta

11

Como regla general, RPC proporciona un mayor nivel de abstracción que otros medios de comunicación entre procesos. Esto lo hace, quizás, más fácil de usar que las primitivas de nivel inferior. Para esta abstracción, puede pagar alguna penalización en el rendimiento debido a la clasificación/desasignación y puede tener que lidiar con una complejidad añadida en la configuración para escenarios simples.

Puede que le interese este thesis (pdf) de Jackie Silcock que analiza las diferencias entre el paso de mensajes, RPC y la memoria compartida distribuida con respecto a varias medidas diferentes de rendimiento e implementación. También puede leer uno de los documentos basados ​​en la tesis: Message Passing, Remote Procedure Calls and Distributed Shared Memory as Communication Paradigms for Distributed Systems (pdf)

+0

El enlace parece estar roto. ¿Sabes dónde encontrar el documento? – SteinNorheim

+1

@ norheim.se - parece que el TR se ha ido, pero rastreé la tesis original y un documento basado en ella. Con suerte, estos enlaces durarán un poco más. – tvanfosson

+0

¡genial! ¡Muchas gracias! +1 – SteinNorheim

22

¿Está hablando de RPC vs Messaging? Como en (típicamente) mensajes asincrónicos? Si de eso es de lo que estás hablando, entonces, la mensajería tiende a ser más robusta a costa de la complejidad y la infraestructura adicional.

El ejemplo más simple es que si tiene un escenario donde RPC-> RPC-> RPC, termina teniendo una pila de llamadas que es de 3 procesos/máquinas de profundidad. Cualquiera de esos procesos/máquina podría fallar durante el procesamiento, y toda la pila se desenrollará.

Si estaba enviando mensajes, la conectividad real entre los procesos es mucho menor. Usted le entrega el mensaje, y usted está en camino. Ahora, si uno de los procesos falla, existe una buena posibilidad de que se reinicie donde lo dejó, ya que, por lo general, el mensaje aún se encuentra en una cola en algún lugar esperando que un nuevo proceso lo busque. El tiempo total puede ser más largo, pero es un sistema mucho más robusto.

Tenga en cuenta que no es una panacea, hay muchas trampas con una arquitectura asíncrona, pero esta solidez es una distinción primordial entre RPC y los sistemas de mensajería.

Cuestiones relacionadas