<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Arch on PIGSTY</title>
    <link>https://v27.pgsty.pro/zh/categories/arch/</link>
    <description>Recent content in Arch on PIGSTY</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    
    
    
      <lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate>
    
    
      <atom:link href="https://v27.pgsty.pro/zh/categories/arch/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>架构</title>
        <link>https://v27.pgsty.pro/zh/docs/pgsql/arch/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://v27.pgsty.pro/zh/docs/pgsql/arch/</guid>
        <description>&lt;h2 id=&#34;组件概览&#34;&gt;组件概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;以下是 PostgreSQL 模块组件及其相互作用的详细描述，从上至下分别为：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;集群 DNS 由 infra 节点上的 DNSMASQ 负责解析&lt;/li&gt;&#xA;&lt;li&gt;集群 VIP 由 &lt;code&gt;vip-manager&lt;/code&gt; 组件管理，它负责将 &lt;a href=&#34;https://v27.pgsty.pro/zh/docs/reference/param/#pg_vip_address&#34;&gt;&lt;code&gt;pg_vip_address&lt;/code&gt;&lt;/a&gt; 绑定到集群主库节点上。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;vip-manager&lt;/code&gt; 从 &lt;code&gt;etcd&lt;/code&gt; 集群获取由 &lt;code&gt;patroni&lt;/code&gt; 写入的集群领导者信息&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;集群服务由节点上的 Haproxy 对外暴露，不同服务通过节点的不同端口（543x）区分。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Haproxy 端口 9101：监控指标 &amp;amp; 统计 &amp;amp; 管理页面&lt;/li&gt;&#xA;&lt;li&gt;Haproxy 端口 5433：默认路由至主 pgbouncer：&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/pgsql/svc/#primary%E6%9C%8D%E5%8A%A1&#34;&gt;读写服务&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Haproxy 端口 5434：默认路由至从库 pgbouncer：&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/pgsql/svc/#replica%E6%9C%8D%E5%8A%A1&#34;&gt;只读服务&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Haproxy 端口 5436：默认路由至主 postgres：&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/pgsql/svc/#default%E6%9C%8D%E5%8A%A1&#34;&gt;默认服务&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Haproxy 端口 5438：默认路由至离线 postgres：&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/pgsql/svc/#offline%E6%9C%8D%E5%8A%A1&#34;&gt;离线服务&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;HAProxy 将根据 &lt;code&gt;patroni&lt;/code&gt; 提供的健康检查信息路由流量。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Pgbouncer 是一个连接池中间件，默认监听6432端口，可以缓冲连接、暴露额外的指标，并提供额外的灵活性。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pgbouncer 是无状态的，并通过本地 Unix 套接字以 1:1 的方式与 Postgres 服务器部署。&lt;/li&gt;&#xA;&lt;li&gt;生产流量（主/从）将默认通过 pgbouncer（可以通过&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/reference/param/#pg_default_service_dest&#34;&gt;&lt;code&gt;pg_default_service_dest&lt;/code&gt;&lt;/a&gt;指定跳过）&lt;/li&gt;&#xA;&lt;li&gt;默认/离线服务将始终绕过 pgbouncer ，并直接连接到目标 Postgres。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 监听5432端口，提供关系型数据库服务&#xA;&lt;ul&gt;&#xA;&lt;li&gt;在多个节点上安装 PGSQL 模块，并使用同一集群名，将自动基于流式复制组成高可用集群&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 进程默认由 &lt;code&gt;patroni&lt;/code&gt; 管理。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Patroni 默认监听端口 8008，监管着 PostgreSQL 服务器进程&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Patroni 将 Postgres 服务器作为子进程启动&lt;/li&gt;&#xA;&lt;li&gt;Patroni 使用 &lt;code&gt;etcd&lt;/code&gt; 作为 DCS：存储配置、故障检测和领导者选举。&lt;/li&gt;&#xA;&lt;li&gt;Patroni 通过健康检查提供 Postgres 信息（比如主/从），HAProxy 通过健康检查使用该信息分发服务流量&lt;/li&gt;&#xA;&lt;li&gt;Patroni 指标将被 infra 节点上的 Prometheus 抓取&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;PG Exporter 在 9630 端口对外暴露 postgres 架空指标&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 指标将被 infra 节点上的 Prometheus 抓取&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Pgbouncer Exporter 在端口 9631 暴露 pgbouncer 指标&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pgbouncer 指标将被 infra 节点上的 Prometheus 抓取&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;pgBackRest 默认在使用本地备份仓库 （&lt;code&gt;pgbackrest_method&lt;/code&gt; = &lt;code&gt;local&lt;/code&gt;）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;如果使用 &lt;code&gt;local&lt;/code&gt;（默认）作为备份仓库，pgBackRest 将在主库节点的&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/reference/param/#pg_fs_bkup&#34;&gt;&lt;code&gt;pg_fs_bkup&lt;/code&gt;&lt;/a&gt; 下创建本地仓库&lt;/li&gt;&#xA;&lt;li&gt;如果使用 &lt;code&gt;minio&lt;/code&gt; 作为备份仓库，pgBackRest 将在专用的 MinIO 集群上创建备份仓库：&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/reference/param/#pgbackrest_repo&#34;&gt;&lt;code&gt;pgbackrest_repo&lt;/code&gt;.&lt;code&gt;minio&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Postgres 相关日志（postgres, pgbouncer, patroni, pgbackrest）由 promtail 负责收集&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Promtail 监听 9080 端口，也对 infra 节点上的 Prometheus 暴露自身的监控指标&lt;/li&gt;&#xA;&lt;li&gt;Promtail 将日志发送至 infra 节点上的 Loki&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/infra/&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://v27.pgsty.pro/img/pigsty/arch.jpg&#34; alt=&#34;pigsty-arch.jpg&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>系统架构</title>
        <link>https://v27.pgsty.pro/zh/docs/concept/arch/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://v27.pgsty.pro/zh/docs/concept/arch/</guid>
        <description>&lt;p&gt;Pigsty 使用 &lt;strong&gt;模块化架构&lt;/strong&gt; 与 &lt;strong&gt;声明式接口&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pigsty 使用&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/setup/config&#34;&gt;配置清单&lt;/a&gt;描述整套部署环境，并通过 ansible &lt;a href=&#34;https://v27.pgsty.pro/zh/docs/setup/playbook&#34;&gt;剧本&lt;/a&gt;实现。&lt;/li&gt;&#xA;&lt;li&gt;Pigsty 在可以在任意节点上运行，无论是物理裸机还是虚拟机，只要操作系统&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/setup/install#%E8%A6%81%E6%B1%82&#34;&gt;兼容&lt;/a&gt;即可。&lt;/li&gt;&#xA;&lt;li&gt;Pigsty 的行为由配置参数控制，具有幂等性的剧本 会将节点调整到配置所描述的状态。&lt;/li&gt;&#xA;&lt;li&gt;Pigsty 采用模块化设计，可自由组合以适应不同场景。使用剧本将模块安装到配置指定的节点上。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;模块&#34;&gt;模块&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 采用模块化设计，有六个主要的默认模块：&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/pgsql&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/infra&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/node&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/etcd&#34;&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://v27.pgsty.pro/zh/docs/redis&#34;&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/a&gt; 和 &lt;a href=&#34;https://v27.pgsty.pro/zh/docs/minio&#34;&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>集群模型</title>
        <link>https://v27.pgsty.pro/zh/docs/concept/model/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://v27.pgsty.pro/zh/docs/concept/model/</guid>
        <description>&lt;p&gt;在 Pigsty 中，功能模块是以 “集群” 的方式组织起来的。每一个集群都是一个 Ansible 分组，包含有若干节点资源，定义有实例&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;PGSQL 模块总览：关键概念与架构细节&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL模块在生产环境中以&lt;strong&gt;集群&lt;/strong&gt;的形式组织，这些&lt;strong&gt;集群&lt;/strong&gt;是由一组由&lt;strong&gt;主-备&lt;/strong&gt;关联的数据库&lt;strong&gt;实例&lt;/strong&gt;组成的&lt;strong&gt;逻辑实体&lt;/strong&gt;。&#xA;每个&lt;strong&gt;数据库集群&lt;/strong&gt;都是一个&lt;strong&gt;自治&lt;/strong&gt;的业务服务单元，由至少一个 &lt;strong&gt;数据库（主库）实例&lt;/strong&gt; 组成。&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
