当前位置: 首页 > news >正文

Neon数据库:让Postgres更智能的选择!

Neon:革新的Serverless PostgreSQL解决方案

在当今快速发展的技术世界,数据库的效率和灵活性成为众多开发者关注的重中之重。Neon,以其独特的serverless架构,正引领着这一变革。本文将深入探讨Neon的独特构架、应用场景以及具体的使用方法,帮助您快速掌握这一开源项目的精髓。

项目简介

Neon是一个创新的开源项目,提供了与AWS Aurora Postgres相媲美的serverless解决方案。Neon的最大特点在于,它将存储和计算进行了分离,并用一个节点集群重新分布PostgreSQL的存储层,实现高度的可扩展性。这意味着,您可以根据实际需求自动伸缩数据库实例,甚至将其缩减至零。这不仅提升了资源的利用效率,也为数据库应用提供了更多的灵活性。

如何快速开始使用Neon

为了便于上手,Neon提供了方便的Free Tier计划。用户可以创建免费试用的serverless Postgres实例,并通过各种Postgres客户端(如psql、dbeaver等)进行连接。在Neon的官方文档中,连接任何应用一节详细介绍了连接步骤。

若是想要进行本地化的开发和测试,Neon还允许用户将项目下载并在本地编译运行。详细的本地运行指南可在项目的GitHub Repo中找到。

架构总览

Neon的架构由计算节点和Neon存储引擎两部分组成。计算节点是由Neon存储引擎支持的无状态PostgreSQL节点。Neon存储引擎则包含两个主要组件:

  • Pageserver:负责提供计算节点的可扩展存储后端。
  • Safekeepers:它们构成一个冗余的WAL(Write Ahead Logging)服务,从计算节点接收WAL日志,并在其被Pageserver处理后,上传到云存储。

这些组件相互作用,构建了一个高效、灵活的数据库架构。

安装与构建

Neon的安装和构建并不复杂,只需按照操作系统版本选择合适的依赖进行安装:

Linux系统

对于Ubuntu或Debian用户,这些包足以构建Neon:

apt install build-essential libtool libreadline-dev zlib1g-dev flex bison libseccomp-dev \
libssl-dev clang pkg-config libpq-dev cmake postgresql-client protobuf-compiler \
libprotobuf-dev libcurl4-openssl-dev openssl python3-poetry lsof libicu-dev

而Fedora用户需要如下包:

dnf install flex bison readline-devel zlib-devel openssl-devel \libseccomp-devel perl clang cmake postgresql postgresql-contrib protobuf-compiler \protobuf-devel libcurl-devel openssl poetry lsof libicu-devel libpq-devel python3-devel \libffi-devel

对于Arch系的系统,这些包是必需的:

pacman -S base-devel readline zlib libseccomp openssl clang \
postgresql-libs cmake postgresql protobuf curl lsof

更多具体的步骤和安装Rust工具链的详细步骤在文档中有详细的说明。

macOS系统

macOS系统的用户需要首先安装XCode及相关依赖:

xcode-select --install
brew install protobuf openssl flex bison icu4c pkg-config m4

并确保PostgreSQL客户端的安装,具体指南可以参考相关文档。

数据库的运行与使用

在Neon的架构中,用户可以轻松启动Pageserver和它的相关服务,并通过多种方式与其交互。以下是如何在本地环境中配置和启动数据库实例的步骤:

  1. 启动Pageserver以及PostgreSQL实例:
cargo neon init
cargo neon start
  1. 创建租户和PostgreSQL计算节点,并启动相应的PostgreSQL实例:
cargo neon tenant create --set-default
cargo neon endpoint create main
cargo neon endpoint start main
  1. 您可以通过以下命令连接到PostgreSQL实例并执行SQL查询:
psql -p 55432 -h 127.0.0.1 -U cloud_admin postgres

Neon支持创建数据库分支,便于开发者在不同环境中进行测试,而不影响主数据库实例的数据。

复杂场景下的使用

Neon的设计是为了应对复杂的应用场景,特别是在数据库需求动态变化的情况下。它的serverless特性和数据分支功能,极大地提升了开发和测试的效率。通过数据库分支,开发者可以在不影响生产数据的情况下进行变更测试。而当负载增加时,Neon能够自动进行横向扩展,满足业务需求。

同类项目介绍

在数据库领域,除了Neon之外,还有一些备受关注的开源项目,如:

  • AWS Aurora PostgreSQL:提供商级别的高可用性和性能,内置多租户架构,是传统企业的首选。
  • TimescaleDB:一个时间序列数据库,基于PostgreSQL构建,适用于大型数据实时分析。
  • CockroachDB:分布式数据库系统,提供一致性保障和高可靠性。

这些项目各具特色,但Neon以其独特的serverless架构和数据分离策略,为开发者提供了更多的选择。Neon在灵活性、易用性和性能上都具有明显优势,是未来数据库解决方案的重要探索方向。

Neon为开发者提供了一个本地转云端的绝佳实验场,帮助他们实现更高效的数据管理和更灵活的应用开发。无论您是个人开发者还是企业技术团队,Neon都将成为您的有力工具。希望本文能够帮助您快速上手Neon,开启高效数据库应用的新篇章。

相关文章:

  • 新兴技术与安全挑战
  • 分布式序列生成方案 : Redis Incr | 基于Redisson创建自增获取序号,每天更换一个key, key到期时间1天,用于创建订单号、快递单号
  • 《安徽日报》聚焦珈和科技AI创新:智慧虫情测报护航夏粮提质丰产
  • Visual Studio 2022 无法编译.NET 9 项目的原因和解决方法
  • HCIP实验五
  • MD编辑器推荐【Obsidian】含下载安装和实用教程
  • anaconda、miniconda、conda的关系及miniconda安装
  • 使用SQLite Studio导出/导入SQL修复损坏的数据库
  • 【笔记】与PyCharm官方沟通解决开发环境问题
  • 【Java的批量操作】
  • 一洽小程序接入说明
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群构建与新型消费迎合策略研究
  • NVM 安装与配置指南
  • 亿级核心表如何优雅扩展字段
  • 【QT】类A接收TCP数据并通过信号通知类B解析
  • 运行在华为云kubernetes应用接入APM服务
  • [Java实战] Docker 快速启动 Sentinel 控制台(二十八)
  • 园区无人机智能巡检项目方案
  • PDF处理控件Aspose.PDF教程:以编程方式将 PDF 导出为 JPG
  • React中使用ahooks处理业务场景
  • 达恩当选罗马尼亚总统
  • 远洋渔船上的命案
  • 竞彩湃|英超欧冠悬念持续,纽卡斯尔诺丁汉能否拿分?
  • 林诗栋/蒯曼混双取胜,国乒赢得多哈世乒赛开门红
  • 信俗与共:清代新疆回疆儒释道庙宇的中华政教
  • 讲座|消逝之钟:《红楼梦》与《布登勃洛克一家》中的时间观