本教程详细介绍如何使用Alibaba Cloud SDK for Java查看PolarDB集群(MySQL集群)的详细属性。
前提条件
在使用本教程前,请确保已完成以下操作:
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)。
<dependencies> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.3</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-polardb --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-polardb</artifactId> <version>1.6.3</version> </dependency> </dependencies>
代码示例
本文操作示例主要以代码形式体现,具体代码如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.polardb.model.v20170801.DescribeDBClusterAttributeRequest;
import com.aliyuncs.polardb.model.v20170801.DescribeDBClusterAttributeResponse;
import com.aliyuncs.polardb.model.v20170801.DescribeDBClustersRequest;
import com.aliyuncs.polardb.model.v20170801.DescribeDBClustersResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.List;
/**
* DescribeDBClusterAttribute 查看指定POLARDB集群的详细属性
* DescribeDBClusters 查询POLARDB集群列表或被RAM授权的集群列表
*/
public class DescribeDBClusterAttribute {
public static void main(String[] args) {
// 初始化公共请求参数
IAcsClient client = Initialization();
// 查询运行中的MySQL集群列表
List<DescribeDBClustersResponse.DBCluster> dbClusters = DescribeDBClusters(client);
// 获取需要的集群ID
for (DescribeDBClustersResponse.DBCluster dbCluster : dbClusters){
// 集群ID
String dbClusterId = dbCluster.getDBClusterId();
// 查看MySQL集群的详细属性
DescribeDBClusterAttributeResponse describeDBClusterAttributeResponse = DescribeDBClusterAttribute(client, dbClusterId);
// 处理返回参数和业务逻辑
System.out.println(new Gson().toJson(describeDBClusterAttributeResponse));
}
}
/**
* DescribeDBClusterAttribute 查看指定POLARDB集群的详细属性
*/
private static DescribeDBClusterAttributeResponse DescribeDBClusterAttribute(IAcsClient client, String dbClusterId) {
DescribeDBClusterAttributeRequest request = new DescribeDBClusterAttributeRequest();
// 集群ID
request.setDBClusterId(dbClusterId);
try {
return client.getAcsResponse(request);
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException();
}
}
/**
* DescribeDBClusters 查询运行中的MySQL集群列表
*/
private static List<DescribeDBClustersResponse.DBCluster> DescribeDBClusters(IAcsClient client) {
DescribeDBClustersRequest request = new DescribeDBClustersRequest();
// 数据库类型,取值
// MySQL
// PostgreSQL
// Oracle
request.setDBType("MySQL");
// 集群状态
// Creating 创建中
// Running 运行中
// Deleting 释放中
// Rebooting 重启中
// DBNodeCreating 正在增加节点
// DBNodeDeleting 正在删除节点
// ClassChanging 正在变更节点规格
// NetAddressCreating 正在创建网络连接
// NetAddressDeleting 正在删除网络连接
// NetAddressModifying 正在修改网络连接
request.setDBClusterStatus("Running");
try {
DescribeDBClustersResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
return response.getItems();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException();
}
}
/**
* Initialization 初始化公共请求参数
*/
private static IAcsClient Initialization() {
// 初始化请求参数
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", // 您的可用区ID
"<your-access-key-id>", // 您的AccessKey ID
"<your-access-key-secret>"); // 您的AccessKey Secret
return new DefaultAcsClient(profile);
}
}
执行结果
正确的执行结果类似如下:
---------------------查询运行中的MySQL集群列表-------------------
{
"requestId": "30745EE3-82B0-4011-AEE3-9E1C892B97CE",
"pageNumber": 1,
"totalRecordCount": 0,
"pageRecordCount": 0,
"items": [...]
}
---------------------查询MySQL集群详细属性-------------------
{
"DBVersion": "5.6",
"LockMode": "Unlock",
"DBClusterDescription": "test",
"DBClusterNetworkType": "VPC",
"DBClusterId": "pc-xxxxxxxxxxxxxx",
"VSwitchId": "vsw-xxxxxxxxxxxxxx",
"Engine": "POLARDB",
"DBClusterStatus": "Running",
"CreationTime": "2019-04-26T06:01:28Z",
"MaintainTime": "18:00Z-19:00Z",
"Tags": [],
"VPCId": "vpc-xxxxxxxxxxxxxx",
"ExpireTime": "",
"Expired": false,
"RequestId": "4E148395-950A-46F8-BFF8-274A64CD793B",
"RegionId": "cn-qingdao",
"DBType": "MySQL",
"DBNodes": [
{
"CreationTime": "2019-04-26T22:01:28Z",
"MaxIOPS": 8000,
"DBNodeRole": "Writer",
"MaxConnections": 1200,
"DBNodeClass": "polar.mysql.x2.medium",
"DBNodeStatus": "Running",
"ZoneId": "cn-qingdao-c",
"DBNodeId": "pi-xxxxxxxxxxxxxx"
},
{
"CreationTime": "2019-04-26T22:01:28Z",
"MaxIOPS": 8000,
"DBNodeRole": "Reader",
"MaxConnections": 1200,
"DBNodeClass": "polar.mysql.x2.medium",
"DBNodeStatus": "Running",
"ZoneId": "cn-qingdao-c",
"DBNodeId": "pi-xxxxxxxxxxxxxx"
}
],
"SQLSize": 0,
"PayType": "Postpaid"
}