同城(同地域内不同可用区之间)高可用功能可有效避免单个可用区故障导致的服务中断,确保业务的稳定性。Flink支持对包年包月的工作空间开启跨可用区,开启后工作空间下跨可用区类型的项目空间可以实现同城高可用。本文为您介绍如何开启并使用跨可用区,以及停止跨可用区计费等。
功能介绍
工作空间支持配置单可用区和跨可用区两种CU类型资源。当工作空间未开启跨可用区时,仅支持创建并使用单可用区CU类型的项目空间,单可用区故障后,作业将无法正常运行。工作空间开启跨可用区(添加跨可用CU)后,支持在工作空间下创建单可用和跨可用类型项目空间。使用跨可用区类型项目空间,当作业运行所在的可用区出现故障时,作业将在您选择的备可用区恢复,从而有效避免因单个可用区故障导致服务中断,确保作业的持续性和高可用性。
使用限制
注意事项
完整链路的高可用必须确保您的上下游系统同样具备高可用。
跨可用CU按照工作空间级别购买,您可以在工作空间下创建不同的项目空间,并为其分配单可用区CU或跨可用区CU。但只有在分配了跨可用CU的项目空间中创建并启动的作业才具备同城高可用能力。下图中CU类型为跨可用区的项目空间才具备同城高可用能力。
开启跨可用区后,该工作空间会自动升级为新网络架构。新网络架构详情及影响请参见网络架构升级。
重要开启跨可用区后,虽然您的作业不会直接在备可用区立即启动,但网络架构已经发生变更。请在开启前,确认已将备可用区的交换机网段添加到上下游系统白名单中,避免出现网络访问受限问题。
开通工作空间时如果存储类型为OSS Bucket,为实现Flink工作空间的同城高可用性,必须确保绑定的Bucket为同城冗余存储类型(配置方法请参见转换Bucket的存储冗余类型)。否则,当某个可用区不可用时,状态数据将无法被正常访问,导致Flink无法保证作业有状态启动。
说明当工作空间同时包含同城高可用与单可用区项目空间时,直接将工作空间绑定的Bucket升级为同城冗余可能会导致存储成本的上涨。您可以重新开通一个工作空间单独用于同城高可用,并绑定同城冗余类型的OSS Bucket,实现成本与可靠性的最优平衡。OSS存储费用详情请参见存储费用。
在使用同城高可用功能后,Flink跨区访问外部上下游资源时,可能导致毫秒级的延迟。建议根据业务需求评估延迟的接受程度,进而确定是否要开启跨可用区。
跨可用区项目空间的CU单价略贵于单可用区,详情请参见包年包月。
开启并使用高可用
方式1:新购工作空间时直接开启
在开通Flink工作空间时开启跨可用区,会默认生成一个名称为工作空间名称-default的单可用区CU的项目空间和一个名称为工作空间名称-default-ha的跨可用区类型项目空间。
在开通Flink工作空间时开启跨可用区工作空间。
在开通Flink工作空间页面,选中是否启用跨可用区,并填写计算资源配额,选择对应的主备可用区和虚拟交换机,详情请参见开通实时计算Flink版。
单击目标跨可用区项目空间名称,在跨可用区项目空间内创建并运行作业。
方式2:添加跨可用区CU并创建跨可用区类型项目空间
开通工作空间时未购买跨可用区CU,您可以添加跨可用区CU并创建跨可用的项目空间。
方式3:单可用区CU的项目空间开启同城高可用
登录实时计算控制台。
确认当前工作空间有未分配的跨可用区CU数,且大于待开启同城高可用的项目空间已分配的CU数。
如果工作空间未分配的跨可用区CU不足,您可以直接为工作空间添加跨可用区CU,或单击其他跨可用区的项目空间的资源分配,释放多余的跨可用区CU,详情请参见资源调整。
单击目标项目空间对应操作列的开启同城高可用后,单击确定。
单击确定后,Flink会自动为目标项目空间分配等量的跨可用区CU,并将原有的单可用区CU退还至工作空间变为未分配CU。例如:
开启前:工作空间下,单可用区已购买CU数为5,已分配CU数为2,跨可用区已购买CU数是5,已分配CU数是0。
开启后:工作空间下,单可用区已购买CU数为5,已分配CU数为0,跨可用区已购买CU数是5,已分配CU数是2。
在转换后的跨可用区类型项目空间创建并运行作业,详情请参见进入目标项目空间。
关闭项目空间的同城高可用功能
无论您以何种方式创建的跨可用区类型的项目空间,都可以按照以下操作关闭该功能。但关闭同城高可用并不会停止计费,停止计费操作请参见退订跨可用区CU。
退订跨可用区CU
工作空间跨可用区已分配CU数为0时,将不产生跨可用区费用。跨可用区CU退订操作步骤如下:
登录实时计算控制台。
单击目标工作空间下所有跨可用区项目空间右侧操作列下的删除后,单击确定。
重要如果项目空间中存在运行中的作业,则无法删除。
项目空间删除后,项目空间中的作业及数据将不能恢复,请谨慎操作。
将工作空间跨可用区目标CU调整为0。
在目标工作空间操作列下,选择
。将跨可用区的目标CU数改为0。
选中协议后,单击确定,完成支付。