将远程 PostgreSQL 数据库连接到本地 Java 应用程序:实用指南
在本地开发过程中从外部数据库访问数据是一个常见的挑战。 本文详细介绍了使用 PostgreSQL 外部数据包装器 (FDW) 和 Fly Proxy 将本地 Java API(使用 SpringBoot)连接到 Fly.io 上托管的远程 PostgreSQL 数据库的解决方案。
问题:弥合差距
该项目需要从位于 Fly.io 托管应用程序上的 PostgreSQL 表中获取数据。由于网络限制,从本地开发环境的直接访问被阻止。 这带来了两个关键障碍:
- 建立从本地计算机到 Fly.io 数据库的安全连接。
- 在本地 Java 应用程序中访问远程数据库数据。
解决方案:Fly Proxy 和 PostgreSQL FDW
该解决方案利用 Fly Proxy 创建安全隧道和 PostgreSQL FDW 将远程数据库视为本地数据源。
了解 PostgreSQL FDW
PostgreSQL 的外部数据包装器 (FDW) 允许查询外部数据源,就好像它们是本地数据源一样。 postgres_fdw
扩展促进了这种连接。
设置 Fly 代理
开始之前,请确保已安装flyctl
。 Fly Proxy 创建安全隧道。命令结构为:
fly proxy <remote> [remote_host] [flags]
对于这种情况,命令类似于:
fly proxy 5433:5432 -a db_app_name
这会建立一个到 Fly.io 数据库 (db_app_name
) 的本地隧道(端口 5433)。
配置 PostgreSQL FDW
-
安装扩展: 在本地 PostgreSQL 数据库中安装
postgres_fdw
:CREATE EXTENSION IF NOT EXISTS postgres_fdw;
-
创建外部服务器:定义与远程数据库的连接:
CREATE SERVER fly_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS ( host '127.0.0.1', port '5433', dbname 'db_name' );
-
映射用户: 创建用户映射以授予访问权限:
CREATE USER MAPPING FOR local_user SERVER fly_server OPTIONS ( user 'remote_user', password 'remote_password' );
-
导入外部表:导入必要的远程表:
IMPORT FOREIGN SCHEMA foreign_schema_name LIMIT TO (remote_table) FROM SERVER fly_server INTO local_schema_name;
(注意:如果远程表依赖于 ENUM 类型,则这些类型也必须在本地创建。)
-
物化视图(可选):对于读取密集型操作,物化视图可以提高性能。
与 Java API 集成
配置 FDW 和代理后,SpringBoot 应用程序可以通过本地数据库连接,使用外部表或物化视图查询外部数据。
要点
- FDW 功能强大,但需要仔细配置。
- Flyctl Proxy 简化了安全的远程数据库访问。
- 这种方法促进了服务解耦,即使存在数据依赖性。
结论
该方法成功地将远程数据集成到本地Java应用程序中,为管理分布式数据提供了灵活的解决方案。 考虑使用 FDW 来应对类似的挑战! 在 LinkedIn 上连接以进行进一步讨论。
fly proxy <remote> [remote_host] [flags]
以上是本地开发,远程数据:从 Java API 访问 Fly.io PostgreSQL的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。