alluxio rpc 分析

本贴最后更新于 2847 天前,其中的信息可能已经东海扬尘
title: alluxio rpc 分析

date: 2017-01-18 11:08:15

tags: [技术学习,bigdata,alluxio]

categories: 技术学习

keywords: 技术学习,bigdata,alluxio

description: alluxio rpc 分析

RPC 通信

一个类扩展了 AbstractThriftClient 类将成为 RPC 客户端。使用方法 retryRPC 发起一个 PRC 调用, 然后实现接口 Service.Iface 的抽象方法的 ServiceHandler 将会收到调用。

用来统一捕获 RPC 调用过程中的异常, 比较好的方法是使用静态方法 RpcUtils.call(), 提供一个实例实现 RpcCallable 接口的 call 方法来处理回调。

RPC 调用

RPC 客户端通过 clientService 发起一个 RPC 调用到实现 RPC 服务端接口的 serviceHandlerAlluxio 中有三个角色,调用方向可以是 Client->MasterWorker->MasterClient->Worker

实现接口 ClientService.IfaceServiceHandler 会被 RPC 客户端调用, 通常地,ServiceHandler 有一个成员用来在 master 或 worker 上执行具体的操作。

下表展示 Alluxio 中的六类 RPC 调用。

RPC Client ClientService(thrift) ServiceHandler Master/Worker 调用方向
FileSystemMasterClient FileSystemMasterClientService FileSystemMasterClientServiceHandler FileSystemMaster Client->Master
FileSystemMasterClient' FileSystemMasterWorkerService FileSystemMasterWorkerServiceHandler FileSystemMaster Worker->Master
RetryHandlingBlockMasterClient BlockMasterClientService BlockMasterClientServiceHandler BlockMaster Client->Master
BlockMasterClient BlockMasterWorkerService BlockMasterWorkerServiceHandler BlockMaster Worker->Master
FileSystemWorkerClient FileSystemWorkerClientService FileSystemWorkerClientServiceHandler FileSystemWorker Client->Worker
RetryHandlingBlockWorkerClient BlockWorkerClientService BlockWorkerClientServiceHandler BlockWorker Client->Worker

RPC 方法

master

  • FileSystemMasterClientServiceHandler

    • checkConsistency
    • completeFile
    • createDirectory
    • createFile
    • free
    • getFileBlockInfoList
    • getNewBlockIdForFile
    • getStatus
    • getStatusInternal
    • getUfsAddress
    • listStatus
    • loadMetadata
    • mount
    • remove
    • rename
    • scheduleAsyncPersist
    • setAttribute
    • unmount
  • FileSystemMasterWorkerServiceHandler

    • getFileInfo
    • getPinIdList
    • heartbeat
  • BlockMasterClientServiceHandler

    • getWorkerInfoList
    • getCapacityBytes
    • getUsedBytes
    • getBlockInfo
  • BlockMasterWorkerServiceHandler

    • getWorkerId
    • registerWorker
    • heartbeat
    • commitBlock

worker

  • BlockWorkerClientServiceHandler

    • accessBlock
    • cacheBlock
    • cancelBlock
    • lockBlock
    • promoteBlock
    • removeBlock
    • requestBlockLocation
    • requestSpace
    • unlockBlock
    • sessionHeartbeat
  • FileSystemWorkerClientServiceHandler

    • cancelUfsFile
    • closeUfsFile
    • completeUfsFile
    • createUfsFile
    • openUfsFile
    • sessionHeartbeat
  • alluxio
    3 引用 • 1 回帖
  • 技术学习
    3 引用 • 1 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • RPC
    16 引用 • 22 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...