Nach der Verwendung von verschiedenen Messaging-und RPC-Systemen bin ich zu dem Schluss gekommen, dass Sie schließlich immer traditionelle RPC, und Push-Ereignisse irgendeiner Art benötigen. Sonst landen Sie unweigerlich mit einem Polling-Hack.Gibt es Thrift-ähnliche RPC-Systeme, die Rückrufe zulassen?
Zum Beispiel unterstützte HTTP ursprünglich nur RPC-ähnliche Methoden (GET und POST geben sofort eine Antwort zurück). Die Leute erkannten, dass Push-Ereignisse nötig waren, und hackten sie mit langen Pollings. Schließlich wurde dies mit Server-Sent Events behoben.
CoAP (eine leichte UDP-basierte Version von HTTP) unterstützt auch Push-Ereignisse durch Hinzufügen einer "Monitor" -Option zu GET-Anfragen. Es ist eine ziemlich elegante Lösung.
Aber keiner von denen sind Thrift-Stil RPC, mit denen ich meine, Sie schreiben eine Schnittstelle Definitionsdatei, und es gibt ein Tool, das diese Schnittstelle in nativen Code für Ihre Sprache der Wahl kompiliert. Danach können Sie entfernte Prozeduren fast wie lokale aufrufen.
Also meine Frage ist, gibt es irgendwelche Thrift-style RPC-Systeme, mit denen Sie Push-Ereignisse abonnieren und einen Rückruf (oder ähnliches) anrufen können, wenn ein Ereignis eintrifft?
Hast Du bei GRPC geschaut? Es basiert auf Callbacks (obwohl nicht unbedingt ein Subscribe-Modell, da ich denke, dass Sie nur einen Handler haben können), unterstützt Protobuf und hat gerade begonnen, auch FlatBuffers zu unterstützen. – Aardappel