0

Ich plane, Apollo-Graphql auf Google App Engine (GAE). Ich muss mich also nicht um die Skalierung kümmern (ich werde Redis oder einen anderen Pubsub verwenden). Das Problem ist jedoch, dass GAE Web Sockets nicht unterstützt. Ich benutze stark GraphQL-Abonnements.Wie GraphQL Subscriptions zu einem anderen Server allein zu trennen

Was Google empfiehlt ist Web-Buchse in einer anderen VM (wie Google Compute Engine) und hält den Rest innerhalb GAE zu trennen: https://cloud.google.com/solutions/real-time-gaming-with-node-js-websocket

Ist es möglich, dies zu tun auf Apollo Server? Ich benutze Knoten js apollo-server-express

Antwort

1

Es ist ein gutes Muster, um Ihre infra zu skalieren. Es gibt keine Kontraindikation, um apollo-server-express/Apollo-Graphql zu verwenden.

Verwenden Sie die gleiche Code-Basis, wird man Abfrage und Mutation mit http und die andere wird behandeln mit websocket behandeln. Richten Sie einfach das richtige Netzwerk an (GAE) oder Google Compute Engine.

Alle http Abfrage wird von GAE behandelt werden. Und apollo-client wird ws Abfrage auf Google Compute Engine abonnieren. Wenn ein Ereignis auf Redis oder anderem veröffentlicht wird, wird Apollo-Graph nur dann konsumieren und auflösen, wenn es sich um einen Abonnenten unter ws handelt.

Sie brauchen also keine Verbindung Pubsub/Redis auf GAE.

Ich erwog, 2 Projekte für http und ws zu verwenden, aber es wird keine graphQL Schemas teilen.

Verwandte Themen