源码分析
Flink 中的 JobManager、WebServer 等组件都需要高可用保障,并且 Flink 还需要进行 Checkpoint 元数据的持久化操作。与 Flink HA 相关的类图如下图所示,我们跟随源码简单看一下 Flink HA 的实现。
HighAvailabilityMode 类中定义了三种高可用性模式枚举,
- NONE:非 HA 模式
- ZOOKEEPER:基于 ZK 实现
- HA FACTORY_CLASS:自定义 HA 工厂类,该类需要实现
HighAvailabilityServicesFactory :
public static HighAvailabilityServices createHighAvailabilityServices(
Configuration configuration,
Executor executor,
AddressResolution addressResolution) throws Exception {
HighAvailabilityMode highAvailabilityMode = LeaderRetrievalUtils.getRecoveryMode(configuration);
switch (highAvailabilityMode) {
case NONE:
// 省略部分代码
// 返回非HA服务类实例
return new StandaloneHaServices(
resourceManagerRpcUrl,
dispatcherRpcUrl,
jobManagerRpcUrl,
String.format("%s%s:%s", protocol, address, port));
case ZOOKEEPER:
BlobStoreService blobStoreService = BlobUtils.createBlobStoreFromConfig(configuration);
// 返回ZK HA 服务类实例

本文介绍了Flink在生产环境中的高可用配置,包括HighAvailabilityMode的三种模式,重点讲解了基于ZooKeeper的HA配置,包括Standalone集群和Yarn集群的配置细节,以及配置文件中的关键参数设置。
最低0.47元/天 解锁文章
436

被折叠的 条评论
为什么被折叠?



