Maison > Java > javaDidacticiel > Développement local, données distantes: accéder à fly.io postgresql depuis votre API Java

Développement local, données distantes: accéder à fly.io postgresql depuis votre API Java

DDD
Libérer: 2025-01-27 06:08:10
original
879 Les gens l'ont consulté

Connexion de bases de données postgresql distantes à votre application Java locale: un guide pratique

L'accès aux données des bases de données externes pendant le développement local est un défi commun. Cet article détaille une solution à l'aide de PostgreSQL Foreign Data Wrapper (FDW) et Fly Proxy pour connecter une API Java locale (en utilisant Springboot) à une base de données postgresql distante hébergée sur Fly.io.

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

Le problème: combler l'écart

Le projet a nécessité la récupération des données d'une table PostgreSQL résidant sur une application hébergée Fly.io. L'accès direct à partir de l'environnement de développement local a été bloqué en raison des restrictions de réseau. Cela a présenté deux obstacles clés:

  1. établissant une connexion sécurisée de la machine locale à la base de données Fly.io.
  2. Accéder aux données de la base de données distantes dans l'application Java locale.

La solution: Proxy Fly et PostgreSQL FDW

La solution exploite le proxy de mouches pour créer un tunnel sécurisé et PostgreSQL FDW pour traiter la base de données distante comme une source de données locale.

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

Comprendre PostgreSQL FDW

L'emballage de données étranger de PostgreSQL (FDW) permet d'interroger des sources de données externes comme si elles étaient locales. L'extension postgres_fdw facilite cette connexion.

Configuration du proxy de la mouche

Avant de démarrer, assurez-vous que flyctl est installé. Fly Proxy crée un tunnel sécurisé. La structure de commande est:

fly proxy <remote> [remote_host] [flags]
Copier après la connexion
Copier après la connexion

Pour ce scénario, la commande ressemblait:

fly proxy 5433:5432 -a db_app_name
Copier après la connexion

Cela établit un tunnel local (port 5433) dans la base de données Fly.io (db_app_name).

Configuration de PostgreSQL FDW

  1. Installez l'extension: Installez postgres_fdw dans votre base de données PostgreSQL locale:

    CREATE EXTENSION IF NOT EXISTS postgres_fdw;
    Copier après la connexion
  2. Créer un serveur étranger: Définissez la connexion à la base de données distante:

    CREATE SERVER fly_server FOREIGN DATA WRAPPER postgres_fdw
    OPTIONS (
        host '127.0.0.1',
        port '5433',
        dbname 'db_name'
    );
    Copier après la connexion
  3. MAP UTILISATIONS: Créer des mappages d'utilisateurs pour accorder l'accès:

    CREATE USER MAPPING FOR local_user SERVER fly_server
    OPTIONS (
        user 'remote_user',
        password 'remote_password'
    );
    Copier après la connexion
  4. Importez la table externe: Importez la table distante nécessaire:

    IMPORT FOREIGN SCHEMA foreign_schema_name
    LIMIT TO (remote_table)
    FROM SERVER fly_server
    INTO local_schema_name;
    Copier après la connexion

    (Remarque: si le tableau distant dépend des types d'énumération, ceux-ci doivent également être créés localement.)

  5. Vue matérialisée (facultative): Pour les opérations lourdes en lecture, une vue matérialisée peut améliorer les performances.

intégrer avec l'API Java

avec FDW et configuré par proxy, l'application Springboot peut interroger les données externes via la connexion de la base de données locale, en utilisant la table étrangère ou la vue matérialisée.

Les plats clés

  • FDW est puissant mais nécessite une configuration minutieuse.
  • Le proxy FlyCTL simplifie l'accès à la base de données distante sécurisée.
  • Cette approche favorise le découplage des services, même avec les dépendances des données.

Conclusion

Cette méthode a intégré avec succès les données distantes dans l'application Java locale, offrant une solution flexible pour gérer les données distribuées. Considérez FDW pour des défis similaires! Connectez-vous sur LinkedIn pour une discussion plus approfondie.

fly proxy <remote> [remote_host] [flags]
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal