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 服务端接口的 serviceHandler。 Alluxio 中有三个角色,调用方向可以是 Client->Master、Worker->Master、 Client->Worker。
实现接口 ClientService.Iface 的 ServiceHandler 会被 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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于