Rumah >Java >javaTutorial >Pembangunan Tempatan, Data Jauh: Mengakses Fly.io PostgreSQL daripada API Java Anda
Menyambung Pangkalan Data PostgreSQL Jauh ke Aplikasi Java Setempat Anda: Panduan Praktikal
Mengakses data daripada pangkalan data luaran semasa pembangunan tempatan adalah cabaran biasa. Artikel ini memperincikan penyelesaian menggunakan PostgreSQL Foreign Data Wrapper (FDW) dan Fly Proxy untuk menyambungkan API Java setempat (menggunakan SpringBoot) ke pangkalan data PostgreSQL jauh yang dihoskan di Fly.io.
Masalahnya: Merapatkan Jurang
Projek ini memerlukan pengambilan data daripada jadual PostgreSQL yang berada pada aplikasi yang dihoskan oleh Fly.io. Akses terus daripada persekitaran pembangunan tempatan telah disekat kerana sekatan rangkaian. Ini membentangkan dua halangan utama:
Penyelesaian: Fly Proxy dan PostgreSQL FDW
Penyelesaian itu memanfaatkan Fly Proxy untuk mencipta terowong selamat dan PostgreSQL FDW untuk menganggap pangkalan data jauh sebagai sumber data setempat.
Memahami PostgreSQL FDW
Pembungkus Data Asing (FDW) PostgreSQL membenarkan pertanyaan sumber data luaran seolah-olah ia adalah tempatan. Sambungan postgres_fdw
memudahkan sambungan ini.
Menyediakan Proksi Lalat
Sebelum bermula, pastikan flyctl
dipasang. Fly Proxy mencipta terowong selamat. Struktur arahan ialah:
<code class="language-bash">fly proxy <remote> [remote_host] [flags]</code>
Untuk senario ini, perintahnya menyerupai:
<code class="language-bash">fly proxy 5433:5432 -a db_app_name</code>
Ini mewujudkan terowong tempatan (port 5433) ke pangkalan data Fly.io (db_app_name
).
Mengkonfigurasi PostgreSQL FDW
Pasang Sambungan: Pasang postgres_fdw
dalam pangkalan data PostgreSQL setempat anda:
<code class="language-sql">CREATE EXTENSION IF NOT EXISTS postgres_fdw;</code>
Buat Pelayan Asing: Tentukan sambungan ke pangkalan data jauh:
<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>
Pengguna Peta: Cipta pemetaan pengguna untuk memberikan akses:
<code class="language-sql">CREATE USER MAPPING FOR local_user SERVER fly_server OPTIONS ( user 'remote_user', password 'remote_password' );</code>
Import Jadual Luar: Import jadual jauh yang diperlukan:
<code class="language-sql">IMPORT FOREIGN SCHEMA foreign_schema_name LIMIT TO (remote_table) FROM SERVER fly_server INTO local_schema_name;</code>
(Nota: Jika jadual jauh bergantung pada jenis ENUM, ini juga mesti dibuat secara setempat.)
Materialized View (Pilihan): Untuk operasi baca-berat, paparan terwujud boleh meningkatkan prestasi.
Menyepadukan dengan API Java
Dengan FDW dan proksi yang dikonfigurasikan, aplikasi SpringBoot boleh menanyakan data luaran melalui sambungan pangkalan data tempatan, menggunakan sama ada jadual asing atau paparan terwujud.
Pengambilan Utama
Kesimpulan
Kaedah ini berjaya mengintegrasikan data jauh ke dalam aplikasi Java tempatan, yang menawarkan penyelesaian yang fleksibel untuk menguruskan data yang diedarkan. Pertimbangkan FDW untuk cabaran yang sama! Sambungkan pada LinkedIn untuk perbincangan lanjut.
<code class="language-bash">fly proxy <remote> [remote_host] [flags]</code>
Atas ialah kandungan terperinci Pembangunan Tempatan, Data Jauh: Mengakses Fly.io PostgreSQL daripada API Java Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!