alluxio rpc 分析

本文介绍了Alluxio中RPC通信的基本原理与实现方式。详细解释了如何通过扩展AbstractThriftClient类创建RPC客户端,并使用retryRPC方法进行RPC调用。此外还列出了Alluxio中的六种RPC调用类型及其对应的服务端接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 ClientClientService(thrift)ServiceHandlerMaster/Worker调用方向
FileSystemMasterClientFileSystemMasterClientServiceFileSystemMasterClientServiceHandlerFileSystemMasterClient->Master
FileSystemMasterClient’FileSystemMasterWorkerServiceFileSystemMasterWorkerServiceHandlerFileSystemMasterWorker->Master
RetryHandlingBlockMasterClientBlockMasterClientServiceBlockMasterClientServiceHandlerBlockMasterClient->Master
BlockMasterClientBlockMasterWorkerServiceBlockMasterWorkerServiceHandlerBlockMasterWorker->Master
FileSystemWorkerClientFileSystemWorkerClientServiceFileSystemWorkerClientServiceHandlerFileSystemWorkerClient->Worker
RetryHandlingBlockWorkerClientBlockWorkerClientServiceBlockWorkerClientServiceHandlerBlockWorkerClient->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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值