0

Wir haben Java-Servlets, die auf GAE laufen und Blobstore, Datastore und andere Cloud-Dienste verwenden.Kann ich zwei Instanzen im selben App Engine-Projekt haben - Java-Servlet und Endpunkte nebeneinander?

Momentan starten wir einen Migrationsprozess zu Cloud-Endpunkten und wir haben ein Problem: Wenn wir ein anderes GAE-Projekt verwenden, können wir die aktuellen Datenspeicher-Entitäten nicht abfragen (nach meinem besten Wissen) Google möchte nicht, dass Sie dies tun - siehe this question und GAE terms of service - Abschnitt 3.3d), so dass wir das gleiche Projekt für beide verwenden müssen.

Ich habe nachgeschlagen, ob es möglich ist, eine GAE-Instanz mit Java-Servlets und eine Instanz mit Endpoints zu haben, aber ich habe nirgends eine schlüssige Antwort gefunden.

Wenn wir versuchen zu implementieren und etwas schief geht, betrachten wir ein potentiell großes Problem für unsere Benutzer, also müssen wir vorher sicher sein.

Hat jemand etwas ähnliches versucht und kann uns versichern, dass das funktioniert?

+3

Es ist unklar zu mir, was Sie bitten. Können Sie mehrere Domains an eine App-App weiterleiten? Sicher kannst du. Können Sie denselben Domainnamen an zwei verschiedene Apps weiterleiten? Nein, aber das ist völlig unabhängig von der App-Engine. Sie können Servlets und Endpunkte in derselben App haben (effektiv sind Endpunkte auch Servlets) und Sie können sie in Modulen trennen. – konqi

+0

Sie haben Recht, ich meinte GAE-Projekt, nicht Domäne. Redigieren meine Frage zu klären. –

Antwort

1

Sie haben 2 Möglichkeiten den alten und den neuen Code in der gleichen App (also ohne Probleme teilen Zugriff auf den Datenspeicher), sondern als separate Motor-Instanzen laufen, so können sie entwickelt werden/Einsatz/verwaltet unabhängig:

  • als different versions der gleichen app/Modul (e):

    • die alte Version der Standard bleibt, kann die neue an einer anderen URL während der Entwicklung zugegriffen werden (möglicherweise über URL-Routing)
    • können Sie traffic splitting verwenden Live-A/B-Tests auf den neuen Code und für die schrittweise endgültige Migration zu tun, bis Sie die neue Version des Standard
  • als different modules des gleichen App machen:

    • sowohl laufen (voll funktionsfähig) nebeneinander auf unbestimmte Zeit, aber Sie brauchen
    • Verkehr routed to the modules in mehr Möglichkeiten bei der Entwicklung vorsichtiger zu sein ist
    • endgültige Migration durch die Veröffentlichung die neue URLs erfolgt, schließlich wieder di recting die alten URLs und schließlich das alte Modul Code

Die 2 Ansätze können, werden auch kombiniert die Senkung, wenn nötig, als die endgültige Lösung des OPs in dieser irgendwie ähnliche Frage beschrieben (für die Python-Umgebung , aber Java-Entsprechungen existieren): Google App Engine upgrading part by part

Verwandte Themen