InstanceGroup(实例组)
更新时间:2022-04-15
查询实例组列表
如下代码可根据集群ID获取其实例组信息:
Plain Text
1public void listInstanceGroups(BmrClient client, String clusterId) {
2 try {
3 // 方法 1. 罗列指定集群ID相关的实例组
4 ListInstanceGroupsResponse response1 = client.listInstanceGroups(clusterId);
5 // 方法 2. 自定义ListInstanceGroupsRequest对象的查询请求
6 ListInstanceGroupsResponse response2 = client.listInstanceGroups(new ListInstanceGroupsRequest().withClusterId(clusterId));
7 for (InstanceGroup instanceGroup: response2.getInstanceGroups()) {
8 System.out.println(instanceGroup.getId() + "," + instanceGroup.getType()
9 + "," + instanceGroup.getType() + "," + instanceGroup.getRequestedInstanceCount()
10 + "," + instanceGroup.getRootDiskSizeInGB() + "," + instanceGroup.getRootDiskMediumType());
11 for (CdsItem cdsItem: instanceGroup.getCds()){
12 System.out.println("cdsItem " + cdsItem.getSizeInGB() + "," + cdsItem.getMediumType());
13 }
14 }
15 } catch (BceServiceException e){
16 System.out.println("List instance group failed: " + e.getErrorMessage());
17 }
18}
请求返回的ListInstanceGroupsResponse对象包含了相关的实例组对象数组List
Plain Text
1public class InstanceGroup {
2 private String id; //实例组ID
3 private String instanceType; //实例组套餐类型
4 private String name; //实例组名称
5 private String type; //实例组类型
6 private int requestedInstanceCount; //请求的实例个数
7 private int rootDiskSizeInGB; //系统盘容量大小
8 private String rootDiskMediumType; //系统盘存储介质类型
9 private List<CdsItem> cds; //云磁盘信息列表
10}
云盘对象CdsItem的属性包括云盘容量大小和云盘存储介质,每个属性均有对应的getter访问器方法,其中云存储介质支持premium_ssd(SSD云磁盘),ssd(高性能云磁盘)两种类型。
Plain Text
1public class CdsItem {
2 private int sizeInGB; //云磁盘容量大小
3 private String mediumType; //云磁盘存储介质
4}
修改实例组配置
BMR支持对CORE、TASK节点进行配置变更,示例代码如下:
Plain Text
1public void modifyInstanceGroups(BmrClient bmrClient, String clusterId, String coreGroupId, String taskGroupId) {
2 // 可省略无须修改的实例组
3 List<ModifyInstanceGroupConfig> instanceGroups = new ArrayList<ModifyInstanceGroupConfig>();
4 // core group
5 ModifyInstanceGroupConfig coreGroup = new ModifyInstanceGroupConfig();
6 coreGroup.setId(coreGroupId);
7 coreGroup.setInstanceCount(4);
8 instanceGroups.add(coreGroup);
9 // task group
10 ModifyInstanceGroupConfig taskGroup = new ModifyInstanceGroupConfig();
11 taskGroup.setId(taskGroupId);
12 taskGroup.setInstanceCount(2);
13 instanceGroups.add(taskGroup);
14
15 String clientToken = UUID.randomUUID().toString();
16 try {
17 bmrClient.modifyInstanceGroups(
18 new ModifyInstanceGroupsRequest()
19 .withClusterId(clusterId)
20 .withInstanceGroups(instanceGroups)
21 .withClientToken(clientToken)
22 );
23 } catch (BceServiceException e) {
24 System.out.println("Modify instance groups failed: " + e.getErrorMessage());
25 }
26}