Es importante aceptar que es imposible asegurar que una llamada remota se ejecutara exitosamente.
No es asunto de tecnologias, es cosa de:
1- TODA llamada remota fallara en algun momento
2- TODA llamada remota puede ser invocada en desorden, mas de 1 vez
3- Bajo el protocolo TCP, no hay llamadas "cortadas/parciales", pero eso solo aplica a 1 llamada, no a la secuencia que tengas
4- TODA llamada deberia ser idempotente
Como se combate?
1- EL minimo de datos enviar/recibir
2- Y en BATCH de ser posible (agrupar muchas)
3- Y comprimido de ser posible (o binario quizas)
4- Opcionalmente, se puede hacer reintentos por N veces al caerse llamada (que es lo que se puede hacer en este caso)
5- Siempre debe haber timeouts y responder apropiadamente
Antes de cambiar de componentes, mejor mira si puedes habilitar compresion, reducir el largo de las llamadas, mirar que CONSECUENCIAS tendria el hacer llamadas en "desorden" (si son tus metodos IDEMPOTENTES?)
|