Alluxio源码分析定位策略:指定主机策略SpecificHostPolicy

简介:         指定主机策略SpecificHostPolicy是一种总是返回一个指定主机名的worker的定位策略。如果在那个主机名对应机器上没有活跃worker的话则返回null。在SpecificHostPolicy内部,封装了一个成员变量,如下: // 主机名 priva...

        指定主机策略SpecificHostPolicy是一种总是返回一个指定主机名的worker的定位策略。如果在那个主机名对应机器上没有活跃worker的话则返回null。在SpecificHostPolicy内部,封装了一个成员变量,如下:

  // 主机名
  private final String mHostname;
        这个mHostname就是SpecificHostPolicy策略实现所依赖的主机名,在SpecificHostPolicy构造方法中,就会根据外部传入的主机名初始化成员变量mHostname,代码如下:

  /**
   * 构造方法,需要根据外部传入的主机名初始化成员变量mHostname
   * Constructs the policy with the hostname.
   *
   * @param hostname the name of the host
   */
  public SpecificHostPolicy(String hostname) {
    mHostname = Preconditions.checkNotNull(hostname);
  }
        而核心方法getWorkerForNextBlock()实现也很简单,遍历BlockWorkerInfo列表workerInfoList,判断BlockWorkerInfo的主机名是否与mHostname相等,相等则返回,否则继续遍历下一个BlockWorkerInfo,最终没有找到符合要求的worker的话,就返回null,代码如下:
  @Override
  public WorkerNetAddress getWorkerForNextBlock(List<BlockWorkerInfo> workerInfoList,
      long blockSizeBytes) {
    // find the first worker matching the host name
	  
	// 遍历BlockWorkerInfo列表workerInfoList,判断BlockWorkerInfo的主机名是否与mHostname相等,
	// 相等则返回,否则继续遍历下一个BlockWorkerInfo
    for (BlockWorkerInfo info : workerInfoList) {
      if (info.getNetAddress().getHost().equals(mHostname)) {
        return info.getNetAddress();
      }
    }
    
    // 最终没有找到符合要求的worker的话,就返回null
    return null;
  }
        十分简单,不再赘述!


相关文章
|
4月前
|
消息中间件 负载均衡 Kafka
Kafka - 3.x 分区分配策略及再平衡不完全指北
Kafka - 3.x 分区分配策略及再平衡不完全指北
83 0
|
10月前
|
流计算
从Flink 重启策略机制能学习到什么?
最近在学习Flink ,在看到Flink的重启策略机制时感觉这个设计很好。
81 0
|
14天前
|
存储 运维 监控
日志服务 Scan 功能工作机制与最佳实践
大数据快速增长的需要泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。从时效性角度看日志计算引擎:数仓覆盖 T + 1 日志处理,准实时系统(搜索引擎、OLA...
43 0
|
分布式计算 算法 调度
spark2.2以后版本任务调度将增加黑名单机制
spark2.2以后版本任务调度将增加黑名单机制
247 0
|
数据采集 缓存 运维
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
|
消息中间件 缓存 负载均衡
负载机制概述
随着信息科技的不断发展,人们对互联网科技的认知不断更新、依赖性随之增强,互联网平台的实效性、稳定性也越发重要,本文将从通过Springcloud框架以生产者消费者模式讲解负载均衡机制。
286 0
负载机制概述
|
JSON Java 测试技术