Tampons de protocole Java RPC Stack
-
08-07-2019 - |
Question
Selon cette entrée Wikipedia:
Les tampons de protocolesont très similaires au protocole Thrift de Facebook, à la différence qu’il n’inclut pas de pile RPC concrète à utiliser pour des services définis. Depuis que les tampons de protocole sont en libre accès, un certain nombre de piles RPC ont été créées pour combler cette lacune. "
Cependant, aucun exemple de pile RPC n’est cité. Quelqu'un peut-il suggérer une implémentation Java d'une pile RPC?
La solution
Si vous voulez une pile RPC basée sur Java, il s'agit de RMI . Cependant, cela ne fonctionne pas bien entre les plates-formes.
J'utilise ProtoBuf pour faire du RPC. Vous pouvez à peu près simuler une pile RPC en encapsulant un message protobuf dans un autre protobuf, qui définit les services ou les appels. Trouvez ma réponse à cette question pour plus de détails,
tampons de protocole Google et HTTP
Thrift semble être une très bonne alternative si vous souhaitez prendre en charge plusieurs plates-formes telles que PHP, Ruby, C #, etc. Cependant, cela me semble très complexe comparé à ProtoBuf.
Autres conseils
Google a ouvert le code source de son infrastructure RPC, gRPC , qui utilise des tampons de protocole pour définir le service et les messages. gRPC est multi-plateforme et supporte les langages C, C ++, C #, Java, Go, Node.js, Python, Ruby, Objective-C et PHP.
gRPC est basé sur la norme HTTP / 2 qui permet de nouvelles fonctionnalités telles que la diffusion en continu bidirectionnelle, le contrôle de flux, la compression d’en-têtes et les connexions multiplexées.