Xiaomi Galaxy Talos Book

TalosAdmin API & Conf


TalosAdmin主要用来进行一些Topic DDL相关的操作:创建/修改/删除/查询/权限控制等

TalosAdmin API

createTopic(CreateTopicRequest request)

参数:CreateTopicRequest,用户需要构造一个CreateTopicRequest,一般来讲,需要指定Topic的partition个数,具体代码示例可以参见Demo中给出的创建topic实例

返回值:CreateTopicResponse,描述创建的Topic信息,包含了TopicInfo,通过它可以获取TopicTalosResourceName,用来做后续的操作,包括消息读写

异常

  • TException,thrift异常,具体看栈信息,几乎所有的接口都可能会抛出这个异常,以下不再赘述;

  • GalaxyTalosException,具体的错误类型需要通过ErrorCode来判断:e.getErrorCode() == ErrorCode.TOPIC_EXIST,可能的原因是:TopicExistException,OperationFailedException,InvalidTopicNameException,其中要注意的是TopicName中不能带有符号#,这个在Talos中是占用符

describeTopic(DescribeTopicRequest request)

参数:DescribeTopicRequest,主要是要设置TopicName

返回值:Topic,包括TopicInfo,TopicAttribute等信息

异常:GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:TopicNotExistException,OperationFailedException

deleteTopic(DeleteTopicRequest request)

参数:DeleteTopicRequest,主要是设置TopicTalosResourceName

返回值:void

异常:GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:TopicNotExistException,OperationFailedException

changeTopicAttribute(ChangeTopicAttributeRequest request)

参数:ChangeTopicAttributeRequest,需要设置TopicTalosResourceName,更新的TopicAttribute

返回值:void

异常:GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:TopicNotExistException,OperationFailedException

setPermission(SetPermissionRequest request)

参数:SetPermissionRequest,需要设置TopicTalosResourceName,要授权的身份Grantee,授于的权限Permission

返回值:void

异常:GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:TopicNotExistException,OperationFailedException, PermissionDeniedException,其中最后一个Exception表明登录身份没有权限进行setPermission操作;

备注:在进行Permission操作时,要注意Grantee的设置,具体可见授权操作中的说明,另外Permission操作后默认的生效时间是3分钟

revokePermission(RevokePermissionRequest request)

参数:RevokePermissionRequest,需要设置TopicTalosResourceName,取消授权的身份Grantee;

返回值:void

异常:GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:TopicNotExistException,OperationFailedException, PermissionDeniedException

queryPermission(GetPermissionRequest request)

参数:GetPermissionRequest,需要设置TopicTalosResourceName,取消授权的身份Grantee;

返回值:int

异常:GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:TopicNotExistException,OperationFailedException, PermissionDeniedException

getDeveloperId()

参数:无需参数,但是需要调用该接口的Credential对应为Developer的身份

返回值:string

异常:GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:OperationFailedException, PermissionDeniedException

addSubResourceName(AddSubResourceNameRequest request)

参数:AddSubResourceNameRequest, 需要设置TopicTalosResourceName,要迁移的目标OrgId,要授予Admin权限的TeamId

返回值: void

异常: GalaxyTalosException,具体通过ErrorCode来看,可能的原因有:PermissionDeniedException, InvalidTopicParamsExceptionOperationFailedException

注意:该接口用于用户将“使用开发者账号创建的Topic”平滑迁移到融合云的认证体系,使用户能够用融合云的UI直接管理旧的Topic;所以调用该接口的程序一定是使用开发者账号构建Credential;另外该接口的调用有一个默认3分钟的生效时间;

TalosAdmin Configs

TalosAdmin的配置只需要且必须配置如下参数

Name Description Default
galaxy.talos.service.endpoint 指定Talos Server的URI,可以配置http和https,相关集群对应的URI请见集群信息 --