公告
我将在雷竞技下载官网Percona Live 2023关于无服务器PostgreSQL。如果你有兴趣,就加入我们吧!
介绍
最近,Percona雷竞技下载官网推出了Percona Builds for Neon (介绍无服务器Postgr雷竞技下载官网eSQL的Percona构建),这使得安装和试验无服务器PostgreSQL变得很容易。但是现在,有一种更方便的方法来探索无服务器PostgreSQL - Docker映像的功能。在这篇文章中,我们将探索使用Docker映像来试验无服务器PostgreSQL的好处,并向你展示如何开始使用它们。
体系结构
为了更好地理解部署过程,我们需要更多地了解一下Neon架构。
在我们的文件中有一节(无服务器PostgreSQL简介)及主要组成部分的简介:
- 页面服务器
- 存储服务器,主要目标是存储所有数据页和WAL记录
- 安全管理员
- 在内存中存储WAL记录的组件(以减少延迟)。由于这些组件非常重要,建议部署多个组件。它们将在Paxos组中连接,以保证数据的一致性。
- 稍后,WAL记录将被发送到Pageserver,在那里它将使用它们更新数据页
- 计算节点
- 接受和处理用户查询的组件。基本上,你可以把它看作一个没有存储层的PostgreSQL实例
- 存储代理

Storage Broker是WAL Service和Pageserver之间的协调组件。

Pageserver监听(电子邮件保护)来自计算节点的请求,并使用存储库中的页面进行响应。

使用Docker部署
我们在Docker Hub中发布了一个包含所有组件的Docker映像:
雷竞技下载官网perconalab/neon Tags | Docker Hub
源代码位于我们的构建库中:
雷竞技下载官网Percona-Lab / serverless-postgresql-build (github.com)
部署步骤
对于我的实验,我遵循这些步骤。我更喜欢测试分布式部署,其中每个组件都放在不同的服务器或虚拟机上,这就是为什么我不把它放在docker-compose中。
假设我使用一个具有IP地址的可达服务器172.16.0.9.不幸的是,我必须在多服务器docker部署中使用物理IP地址进行连接。
1.部署存储代理
|
1
2
3.
4
|
码头工人
运行
-d
-t
--的名字
storagebroker
--网=宿主
--入口点
“storage_broker”
雷竞技下载官网perconalab/霓虹灯
:
最新的
-l
0.0.0.0
:
50051
<
代码
>
|
2.部署安全卫士(或多个以实现冗余)
|
1
2
3.
4
5
|
码头工人
运行
-d
-t
--的名字
safekeeper1
--网=宿主
--入口点
“安全守护者”
雷竞技下载官网perconalab/霓虹灯
:
最新的
--id=1
-D
/数据
--代理-端点=http
://172.16.0.9
:
50051
-l
172.16.0.9
:
5454
--听-http=0.0.0.0
:
7676
|
3.部署pageserver
|
1
2
3.
4
5
6
|
码头工人
运行
-d
-t
--的名字
pageserver
--网=宿主
--入口点
“pageserver”
雷竞技下载官网perconalab/霓虹灯
:
最新的
-D
/数据
-c
“id = 1”
-c
“broker_endpoint = ' http://172.16.0.9:50051 '”
-c
“listen_pg_addr = 0.0.0.0:6400”
-c
“listen_http_addr = 0.0.0.0:9898”
-c
“pg_distrib_dir = / opt / neondatabase-neon / pg_install”
|
4.最有趣的部分-部署计算节点(处理客户端请求的组件)。
最有趣的部分是部署计算节点,这些节点是处理客户机请求的组件。在我们开始之前,我需要介绍一些新概念,我将在以后的博客文章中更详细地描述这些概念,所以现在请耐心等待。
概念一:租户Neon有能力为多个租户服务,所有租户都位于同一个页面服务器上,但对客户端来说是独立的PostgreSQL实例。
概念2:时间线-每个租户可以有多个时间线,并能够将当前状态分支到新的时间线。租户至少必须有一个时间轴。
现在,让我们回到部署计算节点。
部署计算节点,创建新的租户和时间轴:
|
1
2
3.
4
|
码头工人
运行
-d
-t
--的名字
计算
--入口点
“/ compute.sh”
-p55432
:
55432
-e
PAGESERVER=172.16.0.9
-e
安全守护者=172.16.0.9
:
5454
雷竞技下载官网perconalab/霓虹灯
:
最新的
|
这将创建一个轻量级PostgreSQL实例(计算节点),可通过端口55432访问。你可以用普通的PSQL客户端连接到实例:
|
1
|
psql
-p55432
-h
127.0.0.1
-U
cloud_admin
postgres
|
使用现有租户和时间轴部署计算节点:
假设我们已经有了一个租户和时间轴,我们想要附加一个轻量级PostgreSQL实例(计算节点):
要获得之前启动的时间轴和租户,您可以在docker日志(码头工人日志计算)编号为:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
|
{
“名称”
:
“neon.timeline_id”
,
“价值”
:
“4 b4541ad75370114cd7956e457cc875f”
,
“vartype”
:
“字符串”
}
,
{
“名称”
:
“neon.tenant_id”
,
“价值”
:
“6 c92c037a54c0e3a005cdd4a69d6e997”
,
“vartype”
:
“字符串”
}
,
码头工人
运行
-d
-t
--的名字
compute1
--入口点
“/ compute.sh”
-p55433
:
55432
-e
PAGESERVER=172.16.0.9
-e
安全守护者=172.16.0.9
:
5454
-e
租户=51021 f53054316c6533d371c9d7e273c
-e
时间轴=e08a6f1526b3ad6249a7b08fc5585e0b
雷竞技下载官网perconalab/霓虹灯
:
最新的
|
从现有租户和时间轴部署分支计算节点:
这是最令人兴奋的功能:我们可以将现有数据分叉(分支)到一个新的时间轴上(详情见以下博客文章):
|
1
2
3.
4
5
6
|
码头工人
运行
-d
-t
--的名字
compute3
--入口点
“/ compute.sh”
-p55435
:
55432
-e
PAGESERVER=172.16.0.9
-e
安全守护者=172.16.0.9
:
5454
-e
租户=6 c92c037a54c0e3a005cdd4a69d6e997
-e
时间轴=4 b4541ad75370114cd7956e457cc875f
-e
“CREATE_BRANCH = 1”
雷竞技下载官网perconalab/霓虹灯
:
最新的
|
感兴趣吗?
欢迎您使用我们的Docker图像来尝试使用Neon。
如需反馈和问题,请使用我们的论坛:(最新的Perc雷竞技下载官网ona实验室/Percona构建无服务器PostgreSQL主题- Percona社区论坛)
关注我们的博客,了解更多关于无服务器PostgreSQL的设置、性能和独特功能的信息。
如果您想与我们讨论无服务器PostgreSQL的构建或保持联系以获得未来的更新,请在下面留下您的联系方式。
此外,如果您对支持无服务器PostgreSQL感兴趣,请填写触点形式,我会与你联系。





