只读实例创建
对于PolarDB-X Operator 1.3.0及以上的版本,您可以创建只读实例,并指定其所属的 PolarDB-X 主实例。
只读实例的存储节点通过增加 Learner 副本的方式来保证物理资源隔离,提供了读写分离的特性,同时能够基于全局时钟来确保只读查询的强一致性。
您可以通过以下两种方法创建只读实例:
1. 为已有主实例添加只读实例
创建独立的 PolarDBXCluster yaml 配置文件,令spec.readonly
为true
,并指定spec.primaryCluster
为其所属的主实例名,示例如下:
# readonly.yaml
apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
name: pxc-readonly
spec:
readonly: true
primaryCluster: pxc-master # 主实例名
topology:
nodes:
cn:
replicas: 1
template:
resources:
limits:
cpu: 2
memory: 4Gi
image: polardbx/polardbx-sql:v2.4.0_5.4.19
imagePullPolicy: Always
dn:
# DN replicas 会自动与主实例的 DN replicas 保持同步,无需显式指定
template:
resources:
limits:
cpu: 2
memory: 4Gi
image: polardbx/polardbx-engine:v2.4.0_8.4.19
imagePullPolicy: IfNotPresent
config:
cn:
static:
AttendHtap: true # 是否支持 HTAP
2. 同时创建主实例与只读实例
在创建主实例时,在主实例 PolarDBXCluster yaml 配置文件的spec.initReadonly
字段中添加附属只读实例的信息。这种方法创建出的只读实例规格和参数与主实例相同,示例如下:
# pxc-with-readonly.yaml
apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
name: pxc
spec:
initReadonly:
- cnReplicas: 1 # 只读实例 CN 数
name: readonly # 只读实例后缀名,本例中将生成名为 "pxc-readonly" 的只读实例,不填则会生成随机后缀
extraParams:
AttendHtap: "true" # 是否支持 HTAP
topology:
nodes:
cn:
replicas: 1
template:
resources:
limits:
cpu: 2
memory: 4Gi
image: polardbx/polardbx-sql:v2.4.0_5.4.19
imagePullPolicy: Always
dn:
replicas: 1
template:
resources:
limits:
cpu: 2
memory: 4Gi
image: polardbx/polardbx-engine:v2.4.0_8.4.19
imagePullPolicy: IfNotPresent
3. 连接只读实例
您可以直接连接只读实例,连接方法同主实例,见连接 PolarDB-X 数据库,对应的集群实例名称填入只读实例名即可。