InstanceGroup(实例组)
更新时间:2025-10-22
查询实例组列表
如下代码可根据集群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}