Maison >Java >javaDidacticiel >Développement local, données distantes: accéder à fly.io postgresql depuis votre API Java
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.
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:
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.
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:
<code class="language-bash">fly proxy <remote> [remote_host] [flags]</code>
Pour ce scénario, la commande ressemblait:
<code class="language-bash">fly proxy 5433:5432 -a db_app_name</code>
Cela établit un tunnel local (port 5433) dans la base de données Fly.io (db_app_name
).
Configuration de PostgreSQL FDW
Installez l'extension: Installez postgres_fdw
dans votre base de données PostgreSQL locale:
<code class="language-sql">CREATE EXTENSION IF NOT EXISTS postgres_fdw;</code>
Créer un serveur étranger: Définissez la connexion à la base de données distante:
<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>
MAP UTILISATIONS: Créer des mappages d'utilisateurs pour accorder l'accès:
<code class="language-sql">CREATE USER MAPPING FOR local_user SERVER fly_server OPTIONS ( user 'remote_user', password 'remote_password' );</code>
Importez la table externe: Importez la table distante nécessaire:
<code class="language-sql">IMPORT FOREIGN SCHEMA foreign_schema_name LIMIT TO (remote_table) FROM SERVER fly_server INTO local_schema_name;</code>
(Remarque: si le tableau distant dépend des types d'énumération, ceux-ci doivent également être créés localement.)
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
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.
<code class="language-bash">fly proxy <remote> [remote_host] [flags]</code>
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!