4.2 TalosAdmin API
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
, InvalidTopicParamsException
,OperationFailedException
注意:该接口用于用户将“使用开发者账号创建的Topic”平滑迁移到融合云的认证体系,使用户能够用融合云的UI直接管理旧的Topic;所以调用该接口的程序一定是使用开发者账号构建Credential;另外该接口的调用有一个默认3分钟的生效时间;
TalosAdmin Configs
TalosAdmin的配置只需要且必须配置如下参数
Name | Description | Default |
---|---|---|
galaxy.talos.service.endpoint | 指定Talos Server的URI,可以配置http和https,相关集群对应的URI请见集群信息 | -- |