Heim > Java > javaLernprogramm > Lokale Entwicklung, Remotedaten: Zugriff auf fly.io postgresql von Ihrer Java -API

Lokale Entwicklung, Remotedaten: Zugriff auf fly.io postgresql von Ihrer Java -API

DDD
Freigeben: 2025-01-27 06:08:10
Original
838 Leute haben es durchsucht

Remote-PostgreSQL-Datenbanken mit Ihrer lokalen Java-Anwendung verbinden: Ein praktischer Leitfaden

Der Zugriff auf Daten aus externen Datenbanken während der lokalen Entwicklung ist eine häufige Herausforderung. In diesem Artikel wird eine Lösung beschrieben, die PostgreSQL Foreign Data Wrapper (FDW) und Fly Proxy verwendet, um eine lokale Java-API (mit SpringBoot) mit einer entfernten PostgreSQL-Datenbank zu verbinden, die auf Fly.io gehostet wird.

Local Development, Remote Data: Accessing Fly.io PostgreSQL from Your Java API

Das Problem: Die Lücke schließen

Das Projekt erforderte das Abrufen von Daten aus einer PostgreSQL-Tabelle, die sich in einer von Fly.io gehosteten Anwendung befindet. Der direkte Zugriff aus der lokalen Entwicklungsumgebung wurde aufgrund von Netzwerkbeschränkungen blockiert. Dies stellte zwei wesentliche Hürden dar:

  1. Herstellen einer sicheren Verbindung vom lokalen Computer zur Fly.io-Datenbank.
  2. Zugriff auf die Remote-Datenbankdaten innerhalb der lokalen Java-Anwendung.

Die Lösung: Fly Proxy und PostgreSQL FDW

Die Lösung nutzt Fly Proxy, um einen sicheren Tunnel zu erstellen, und PostgreSQL FDW, um die Remote-Datenbank als lokale Datenquelle zu behandeln.

Local Development, Remote Data: Accessing Fly.io PostgreSQL from Your Java API

PostgreSQL FDW verstehen

Der Foreign Data Wrapper (FDW) von PostgreSQL ermöglicht die Abfrage externer Datenquellen, als wären sie lokal. Die Erweiterung postgres_fdw erleichtert diese Verbindung.

Einrichten des Fly Proxy

Bevor Sie beginnen, stellen Sie sicher, dass flyctl installiert ist. Fly Proxy erstellt einen sicheren Tunnel. Die Befehlsstruktur ist:

<code class="language-bash">fly proxy <remote> [remote_host] [flags]</code>
Nach dem Login kopieren
Nach dem Login kopieren

Für dieses Szenario sah der Befehl wie folgt aus:

<code class="language-bash">fly proxy 5433:5432 -a db_app_name</code>
Nach dem Login kopieren

Dadurch wird ein lokaler Tunnel (Port 5433) zur Fly.io-Datenbank (db_app_name) eingerichtet.

PostgreSQL FDW konfigurieren

  1. Installieren Sie die Erweiterung: Installieren Sie postgres_fdw in Ihrer lokalen PostgreSQL-Datenbank:

    <code class="language-sql">CREATE EXTENSION IF NOT EXISTS postgres_fdw;</code>
    Nach dem Login kopieren
  2. Erstellen Sie einen fremden Server: Definieren Sie die Verbindung zur Remote-Datenbank:

    <code class="language-sql">CREATE SERVER fly_server FOREIGN DATA WRAPPER postgres_fdw
    OPTIONS (
        host '127.0.0.1',
        port '5433',
        dbname 'db_name'
    );</code>
    Nach dem Login kopieren
  3. Benutzer zuordnen:Benutzerzuordnungen erstellen, um Zugriff zu gewähren:

    <code class="language-sql">CREATE USER MAPPING FOR local_user SERVER fly_server
    OPTIONS (
        user 'remote_user',
        password 'remote_password'
    );</code>
    Nach dem Login kopieren
  4. Externe Tabelle importieren:Die erforderliche Remote-Tabelle importieren:

    <code class="language-sql">IMPORT FOREIGN SCHEMA foreign_schema_name
    LIMIT TO (remote_table)
    FROM SERVER fly_server
    INTO local_schema_name;</code>
    Nach dem Login kopieren

    (Hinweis: Wenn die Remote-Tabelle von ENUM-Typen abhängt, müssen diese auch lokal erstellt werden.)

  5. Materialisierte Ansicht (optional): Bei leseintensiven Vorgängen kann eine materialisierte Ansicht die Leistung verbessern.

Integration mit der Java-API

Wenn FDW und der Proxy konfiguriert sind, kann die SpringBoot-Anwendung die externen Daten über die lokale Datenbankverbindung abfragen, indem sie entweder die Fremdtabelle oder die materialisierte Ansicht verwendet.

Wichtige Erkenntnisse

  • FDW ist leistungsstark, erfordert jedoch eine sorgfältige Konfiguration.
  • Flyctl Proxy vereinfacht den sicheren Remote-Datenbankzugriff.
  • Dieser Ansatz fördert die Entkopplung von Diensten, auch bei Datenabhängigkeiten.

Fazit

Diese Methode hat Remote-Daten erfolgreich in die lokale Java-Anwendung integriert und bietet eine flexible Lösung für die Verwaltung verteilter Daten. Ziehen Sie FDW für ähnliche Herausforderungen in Betracht! Verbinden Sie sich auf LinkedIn für weitere Diskussionen.

<code class="language-bash">fly proxy <remote> [remote_host] [flags]</code>
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLokale Entwicklung, Remotedaten: Zugriff auf fly.io postgresql von Ihrer Java -API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage