云主机开年特惠28.8元/年,0元秒杀等你来抢!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 天翼云新春焕新季 NEW 云主机开年特惠28.8元/年,0元秒杀等你来抢!
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
  • MCP市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      天翼云对等连接_相关内容
      • 配置HBase/CloudTable目的端参数
        本章节主要介绍配置HBase/CloudTable目的端参数。 作业中目的连接为配置HBase连接或配置CloudTable连接时,即导入数据到以下数据源时,目的端作业参数如下表所示。 表 HBase/CloudTable作为目的端时的作业参数 参数名 说明 取值样例 表名 写入数据的HBase表名。如果是创建新HBase表,支持从源端拷贝字段名。单击输入框后面的按钮可进入表的选择界面。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据。 TBL2 导入前清空数据 选择目的端表中数据的处理方式: 是:任务启动前会清除目标表中数据。 否:导入前不清空目标表中的数据,如果选“否”且表中有数据,则数据会追加到已有的表中。 是 Row key拼接分隔符 可选参数,用于多列合并作为rowkey,默认为空格。 , Rowkey冗余 可选参数,是否将选做Rowkey的数据同时写入HBase的列,默认值“否”。 否 压缩算法 可选参数,创建新HBase表时采用的压缩算法,默认为值“NONE”。 NONE:不压缩。 SNAPPY:压缩为Snappy格式。 GZ:压缩为GZ格式。 NONE WAL开关 选择是否开启HBase的预写日志机制(WAL,Write Ahead Log)。 是:开启后如果出现HBase服务器宕机,则可以从WAL中回放执行之前没有完成的操作。 否:关闭时能提升写入性能,但如果HBase服务器宕机可能会造成数据丢失。 否 匹配数据类型 是:源端数据库中的Short、Int、Long、Float、Double、Decimal类型列的数据,会转换为Byte[]数组(二进制)写入HBase,其他类型的按字符串写入。 如果这几种类型中,有合并做rowkey的,则依然当字符串写入。 该功能作用是:降低存储占用空间,存储更高效;特定场景下rowkey分布更均匀。 否:源端数据库中所有类型的数据,都会按照字符串写入HBase。 否
        来自:
        帮助文档
        数据治理中心 DataArts Studio
        用户指南
        数据集成
        管理作业
        配置作业目的端参数
        配置HBase/CloudTable目的端参数
      • 服务协议
        此小节介绍天翼云数据库安全服务协议 天翼云数据库安全服务协议
        来自:
        帮助文档
        数据库安全
        相关协议
        服务协议
      • 查询订单和费用
        本章节主要描述订单及费用查询的快速入门。 查看资源 可以通过ECX控制台,查看开通的资源实例情况。 边缘虚拟机:控制台边缘虚拟机实例 。 边缘裸金属:控制台边缘裸金属裸金属服务器。 边缘存储:根据选购的存储类型不同,在控制台边缘存储本地盘、云硬盘、本地裸盘、文件存储等板块中查看。 边缘网络:根据选购的网络产品不同,在控制台边缘网络公网访问公网IP、控制台边缘网络公网访问共享带宽、控制台边缘网络公网访问IPv6网关、控制台边缘网络NAT网关、控制台边缘网络弹性负载均衡等板块中查看。 切换不同节点,查看在不同节点开通的资源实例情况。 查看订单 在天翼云官网我的费用中心订单管理中查看。 订单与资源实例的区别:一个订单中可能包含多种、多个资源实例。资源实例开通、升配、续订、退订都会产生新的订单。在ECX控制台查看到的订单号为资源的开通订单号。 您可以在ECX控制台查看资源的计费资源ID,在ECX控制台费用板块、官网首页我的费用中心板块中,通过该ID查询到相应的订单记录。 部分资源实例在我的订单中不展示,有效的资源实例以控制台中展示的为准。
        来自:
        帮助文档
        智能边缘云
        快速入门
        查询订单和费用
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response java package com.ffcs.ebp.ebpsdk.common; import java.util.Map; public class Response { private int statusCode; private String body; private Map headers; public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode statusCode; } public String getBody() { return body; } public void setBody(String body) { this.body body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers headers; } } 2. com.ffcs.ebp.ebpsdk.YunSign java package com.ffcs.ebp.ebpsdk; import com.ffcs.ebp.ebpsdk.common.Response; import org.apache.commons.lang.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.config.AuthSchemes; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.; public class YunSign { private String url; private String body; private String ak; private String sk; private String uuId; private int temp; private String contentType; private String queryStr; private Map headerMap; private String afterQuery; public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map headerMap) { this.url url; if(body.equals("{}")){ body ""; } this.body body; this.ak ak; this.sk sk; this.uuId uuId; this.temp temp; this.contentType contentType; this.queryStr queryStr; this.headerMap headerMap; } public Response toDo(String method, int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response response null; method method.toUpperCase(); switch (method) { case "POST": response doPost(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "GET": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByGetReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doGet(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "DELETE": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByDeleteReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doDelete(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "PUT": response doPut(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "PATCH": response doPatch(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "HEAD": response doHead(connectTimeout, connectionRequestTimeout, socketTimeout); break; } return response; } private String getSign(Date eopDate) { String calculateContentHash getSHA256(body); //报文原封不动进行sha256摘要 // System.out.println("calculateContentHash:" + calculateContentHash); SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); SimpleDateFormat DATEFORMATTER new SimpleDateFormat("yyyyMMdd"); String singerDate TIMEFORMATTER.format(eopDate); String singerDd DATEFORMATTER.format(eopDate); //header的key按照26字母进行排序, 以&作为连接符连起来 try { String CampmocalHeader String.format("ctyuneoprequestid:%sneopdate:%sn", this.uuId, singerDate); String sigture CampmocalHeader + "n" + this.afterQuery + "n" + calculateContentHash; // System.out.println("sigture:" + sigture); byte[] ktime HmacSHA256(singerDate.getBytes(), sk.getBytes()); // System.out.println("ktime:" + HexUtils.bytes2Hex(ktime)); byte[] kAk HmacSHA256(ak.getBytes(), ktime); // System.out.println("kAk:" + HexUtils.bytes2Hex(kAk)); byte[] kdate HmacSHA256(singerDd.getBytes(), kAk); // System.out.println("kdate:" + HexUtils.bytes2Hex(kdate)); String Signature Base64.getEncoder().encodeToString(HmacSHA256(sigture.getBytes("UTF8"), kdate)); // System.out.println("Signature:" + Signature); String signHeader String.format("%s Headersctyuneoprequestid;eopdate Signature%s", ak, Signature); // System.out.println("signHeader:" + signHeader); return signHeader; } catch (Exception e) { e.printStackTrace(); } return null; } / 在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 @return HttpClient 支持https / private static CloseableHttpClient sslClient() { try { // 在调用SSL之前需要重写验证方法,取消检测SSL X509TrustManager trustManager new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override public void checkServerTrusted(X509Certificate[] xcs, String str) { } }; SSLContext ctx SSLContext.getInstance(SSLConnectionSocketFactory.TLS); ctx.init(null, new TrustManager[]{trustManager}, null); SSLConnectionSocketFactory socketFactory new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); // 创建Registry RequestConfig requestConfig RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARDSTRICT) .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); Registry socketFactoryRegistry RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", socketFactory).build(); // 创建ConnectionManager,添加Connection配置信息 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager(socketFactoryRegistry); CloseableHttpClient closeableHttpClient HttpClients.custom().setConnectionManager(connectionManager) .setDefaultRequestConfig(requestConfig).build(); return closeableHttpClient; } catch (KeyManagementException ex) { throw new RuntimeException(ex); } catch (NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } } public Response doGet(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); //创建HttpGet远程连接实例 HttpGet httpGet; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGet new HttpGet(this.url + "?" + this.afterQuery); } else { httpGet new HttpGet(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGet.setHeader("ContentType", this.contentType); httpGet.setHeader("ctyuneoprequestid", this.uuId); httpGet.setHeader("EopAuthorization", getSign(eopDate)); httpGet.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGet.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGet.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpGet.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpGet); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByGetReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response result new Response(); CloseableHttpClient client null; CloseableHttpResponse response null; try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL client sslClient(); } else { client HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpGetWithEntity远程连接实例 HttpGetWithEntity httpGetWithEntity; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGetWithEntity new HttpGetWithEntity(this.url + "?" + this.afterQuery); } else { httpGetWithEntity new HttpGetWithEntity(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为HttpGetWithEntity实例设置配置 httpGetWithEntity.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGetWithEntity.setHeader("ContentType", this.contentType); httpGetWithEntity.setHeader("ctyuneoprequestid", this.uuId); httpGetWithEntity.setHeader("EopAuthorization", getSign(eopDate)); httpGetWithEntity.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGetWithEntity.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGetWithEntity.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); httpGetWithEntity.setEntity(httpEntity); //执行请求操作,并拿到结果(同步阻塞) response client.execute(httpGetWithEntity); //获取结果实体 HttpEntity entity response.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! client) { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPost(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpPost远程连接实例 HttpPost httpPost; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPost new HttpPost(this.url + "?" + this.afterQuery); } else { httpPost new HttpPost(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPost.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPost.setHeader("ContentType", this.contentType); httpPost.setHeader("ctyuneoprequestid", this.uuId); httpPost.setHeader("EopAuthorization", getSign(eopDate)); httpPost.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPost.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPost.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPost.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPut(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPut远程连接实例 HttpPut httpPut; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPut new HttpPut(this.url + "?" + this.afterQuery); } else { httpPut new HttpPut(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPut.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(20321900,01,05); httpPut.setHeader("ContentType", this.contentType); httpPut.setHeader("ctyuneoprequestid", this.uuId); httpPut.setHeader("EopAuthorization", getSign(eopDate)); httpPut.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPut.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPut.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPut.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPut); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPatch(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPatch远程连接实例 HttpPatch httpPatch; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPatch new HttpPatch(this.url + "?" + this.afterQuery); } else { httpPatch new HttpPatch(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPatch.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPatch.setHeader("ContentType", this.contentType); httpPatch.setHeader("ctyuneoprequestid", this.uuId); httpPatch.setHeader("EopAuthorization", getSign(eopDate)); httpPatch.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPatch.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPatch.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPatch.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPatch); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doDelete(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDelete httpDelete; if (StringUtils.isNotEmpty(this.afterQuery)) { httpDelete new HttpDelete(this.url + "?" + this.afterQuery); } else { httpDelete new HttpDelete(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpDelete.setHeader("ContentType", this.contentType); httpDelete.setHeader("ctyuneoprequestid", this.uuId); httpDelete.setHeader("EopAuthorization", getSign(eopDate)); httpDelete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpDelete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpDelete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpDelete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpDelete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByDeleteReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDeleteWithBody delete; if (StringUtils.isNotEmpty(this.afterQuery)) { delete new HttpDeleteWithBody(this.url + "?" + this.afterQuery); } else { delete new HttpDeleteWithBody(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); delete.setHeader("ContentType", this.contentType); delete.setHeader("ctyuneoprequestid", this.uuId); delete.setHeader("EopAuthorization", getSign(eopDate)); delete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { delete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : delete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); delete.setEntity(httpEntity); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 delete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(delete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doHead(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpHead远程连接实例 HttpHead httpHead; if (StringUtils.isNotEmpty(this.afterQuery)) { httpHead new HttpHead(this.url + "?" + this.afterQuery); } else { httpHead new HttpHead(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpHead.setHeader("ContentType", this.contentType); httpHead.setHeader("ctyuneoprequestid", this.uuId); httpHead.setHeader("EopAuthorization", getSign(eopDate)); httpHead.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpHead.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpHead.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpHead实例设置配置 httpHead.setConfig(requestConfig); // 执行head请求得到返回对象 response httpClient.execute(httpHead); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } private String toHex(byte[] data) { StringBuilder sb new StringBuilder(data.length 2); byte[] var2 data; int var3 data.length; for (int var4 0; var4 2) { String encodeStr null; encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + str; } } else { String[] s str.split(""); if (s.length > 2) { String encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } } } } } catch (Exception e) { e.printStackTrace(); } return afterQuery; } } 3. HexUtils.java java package com.ffcs.ebp.ebpsdk; public class HexUtils { private static final char[] HEXES { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / byte数组 转换成 16进制小写字符串 / public static String bytes2Hex(byte[] bytes) { if (bytes null bytes.length 0) { return null; } StringBuilder hex new StringBuilder(); for (byte b : bytes) { hex.append(HEXES[(b >> 4) & 0x0F]); hex.append(HEXES[b & 0x0F]); } return hex.toString(); } / 16进制字符串 转换为对应的 byte数组 / public static byte[] hex2Bytes(String hex) { if (hex null hex.length() 0) { return null; } char[] hexChars hex.toCharArray(); byte[] bytes new byte[hexChars.length / 2]; // 如果 hex 中的字符不是偶数个, 则忽略最后一个 for (int i 0; i headerMap new HashMap<>(); // headerMap.put("queryMetricDataInfo", "{"regionId":"cnsz1","dim":"instanceid,98cdcc8a8e544788ab9cc94ccee429c7","filter":"average","from":"1658473040","to":"1658473040","metricName":"netbitRecv","namespace":"AGT.ECS","period":"1"},"platform":"3"}"); // headerMap.put("platform", "3"); // headerMap.put("consoleUrl", " // headerMap.put("UserAgent", "3333433"); // headerMap.put("XForwardedFor", "1231313"); // headerMap.put("regionId", "100054c0416811e9a6690242ac110002"); // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc"); //请求地址 String url " //query参数(?后面拼接的参数。没有就不填) aaaa&bbbb String queryStr "regionID41f64827xxxxxxxxxffa3a5deb5d15d"; //body参数(没有就不填) String body ""; //APPID String ak "9f82cacd3f8235c66edfs5e899f098e6"; //appkey String sk "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62VM"; String uuId UUID.randomUUID().toString(); //连接超时 int connectTimeout 35000; //连接请求超时 int connectionRequestTimeout 35000; //socket超时 int socketTimeout 60000; YunSign yunSign new YunSign(url, ak, sk, uuId, body, temp, contentType, queryStr, headerMap); Response response yunSign.toDo(method, connectTimeout, connectionRequestTimeout, socketTimeout); System.out.println("应答头部 "); for (Map.Entry entry : response.getHeaders().entrySet()) { System.out.println(entry.getKey().toString() + ":" + entry.getValue().toString()); } System.out.println(); System.out.println("请求结果 "); System.out.println(response.getBody()); } }
        来自:
        帮助文档
        对象存储 ZOS
        API参考
        如何调用API
        Java调用示例
      • 与其他服务的关系
        服务名称 交互功能 相关内容 虚拟私有云VPC 创建弹性负载均衡时,需要指定弹性负载均衡关联的VPC和子网 弹性云主机 弹性负载均衡的后端主机组,关联开启后端的主机实例 物理机 弹性负载均衡的后端主机组,关联开启后端的主机实例 弹性IP 创建公网弹性负载均衡时,需要绑定公网IP来做公网服务的流量分发 弹性伸缩 弹性伸缩服务可以与弹性负载均衡集成,根据实际的负载情况自动调整云主机实例的数量。 云监控服务 云监控服务可以监控弹性伸缩的性能指标,如请求数、连接数、响应时间等。
        来自:
        帮助文档
        弹性负载均衡 ELB
        产品简介
        与其他服务的关系
      • 登录文档数据库服务
        本页介绍了如何登录文档数据库服务。 前提条件 在登录并使用TeleDB数据库控制台前,您需要预先购买文档数据库服务实例,实例购买页面会提供版本、规格等多样参数供您选择,您可以根据业务需求选择最适合您的数据库规格。 控制中心方式登录控制台 1. 打开天翼云官网,并登录。 2. 单击页面右上方“控制中心”,进入天翼云管理控制台页面。 3. 右上角根据您的需要切换到对应企业项目。 4. 左上角可切换您需要购买文档数据库服务的区域和资源池。 5. 选择资源池后信息,在页面找到“数据库”专栏,点击“文档数据库“,即可进入文档数据库服务管理控制台页面。 产品详情页方式登录登录控制台 1. 打开天翼云官网,并登录。 2. 从官网首页依次选择“产品” > “数据库” > “NoSQL数据库”并点击“文档数据库服务”。 3. 进入到“文档数据库服务”产品详情页,点击页面中的“管理控制台”按钮,即可进入到TeleDB数据库控制台页面,点击“DDS”>“实例管理”进入文档数据库服务控制台。 4. 在页面左上角可切换已购买实例的区域和资源池。
        来自:
        帮助文档
        文档数据库服务
        用户指南
        登录文档数据库服务
      • API调用
        APP认证的API,第三方怎么调用? 您需要把AppKey和AppSecret提供给第三方,然后第三方通过SDK调用。具体SDK的调用步骤请参见“开发指南 > 使用APP认证调用API”。 是否支持移动应用调用API? API支持被移动应用调用。使用APP认证时,将移动应用的AppKey和AppSecrect替换SDK中的AppKey和AppSecrect进行APP签名。 如何实现WebSocket数据传输? API网关支持WebSocket数据传输,在创建API时,请求协议中的HTTP相当于WebSocket的ws,HTTPS相当于WebSocket的wss。 API调用是否支持长连接 API网关支持长连接,但注意适当使用,避免占用太多资源。 策略后端有多个时,怎么匹配和执行 当您的API配置了多个策略后端,API网关会按顺序进行匹配,匹配到其中一个立即执行API请求转发,不会进行后续的匹配。 当策略后端都没有匹配成功,则按照默认后端执行API请求的转发。 API调用对请求的响应消息体限制 API调用对请求的响应消息体大小没有限制。 如何通过APIG访问公网后端服务? 通过开启公网入口访问,允许外部服务调用API。
        来自:
        帮助文档
        API网关
        常见问题
        API调用
      • 使用限制
        本文为您介绍分布式消息服务MQTT各功能项使用限制。 功能信息项 限制值 说明 实例名称 长度4~40个字符,大小写字母开头,只能包含大小写字母、数字及分隔符() 实例名称不可重复。 Topic 长度 64 个字符 Topic 长度不得超过该限制,否则会导致无法发送或者订阅。 Topic 和 Client ID 可用字符 仅限数字 09,字母 az 或 AZ,和符号“”、“” Client ID 和MQTT 的 Topic 不允许使用“/”、“:”、“,”、“%”等其他非常规字符,否则可能导致无法连接和收发消息。 Client ID 长度 64 个字符 使用微消息队列 MQTT 收发消息时,Client ID 长度不得超过该限制,否则会导致连接被断开。 消息大小 64 KB 字节 消息负载不得超过该限制,否则消息会被丢弃。 单个设备订阅Topic 数量 30 个 每个客户端最多允许同时订阅 30 个 Topic,超过该限制会导致无法新增新的订阅关系。 每个持久化会话离线消息存储数量 1,000,条 服务端会限制每个持久化会话的离线消息数量。超过该限制后,服务端会从最早的消息开始清理。因此,请合理使用持久化订阅模式,以免产生很多无用的离线消息。
        来自:
        帮助文档
        分布式消息服务MQTT
        产品介绍
        使用限制
      • 基本概念
        TCP建连时间 TCP建连时间是指浏览器或客户端和服务器建立TCP/IP连接的消耗时间。 SSL握手时间 SSL握手时间是指浏览器或客户端和服务器建立安全套接层(SSL)连接的消耗时间。 直播推流 直播推流是指数据源经过音视频采集-编码-封装后,将数据推送到直播边缘服务器的过程。目前推流支持RTMP(S)协议。 直播播放 直播播放是指用户向直播拉流边缘节点发起请求获取到直播流内容,并在客户端对内容解封-解码-渲染播放的过程。目前拉流支持RTMP、HTTP FLV、HLS协议。 推流域名 推流域名是指客户提供的用于直播流接入视频直播的域名。该域名用于推拉流架构下,主播/用户将视频内容推送至直播节点。 拉流域名 拉流域名是客户提供的用于直播流播放的域名。 发布点(AppName) 发布点是指直播的应用名称,即直播流媒体文件的存放路径。 流名(StreamName) 流名即直播流名称,通常与域名和发布点一起唯一标识一路流。一般情况下流名不包含文件后缀。
        来自:
        帮助文档
        视频直播
        产品介绍
        基本概念
      • 备份文件导入方式-OBS桶
        步骤3:创建迁移任务 步骤 1 登录分布式缓存服务管理控制台。 步骤 2 在管理控制台左上角单击,选择区域和项目。 步骤 3 单击左侧菜单栏的“数据迁移”。页面显示迁移任务列表页面。 步骤 4 单击右上角的“创建备份导入任务”,进入创建备份导入任务页面。 步骤 5 设置迁移任务名称和描述。 步骤 6 在源实例区域,“数据来源”选择“OBS桶”,在“OBS桶名”中选择已上传备份文件的OBS桶。 说明 上传的备份文件格式支持.aof、.rdb、.zip、.tar.gz,您可以上传任意其中一种。 步骤 7 步骤 7 在“备份文件”处单击“添加备份文件”,选择需要迁移的备份文件。 步骤 8 在目标实例区域,选择步骤1:准备目标Redis实例中创建的目标Redis。 步骤 9 输入目标实例的密码,单击“测试连接”,测试密码是否符合要求。免密访问的实例,请直接单击“测试连接”。 步骤 10 单击“立即创建”。 步骤 11 确认迁移信息,然后单击“提交”,开始创建迁移任务。 可返回迁移任务列表中,观察对应的迁移任务的状态,迁移成功后,任务状态显示“成功”。 结束
        来自:
        帮助文档
        分布式缓存服务Redis版
        用户指南
        使用DCS迁移数据
        备份文件导入方式
        备份文件导入方式-OBS桶
      • 约束与限制
        本章节主要介绍约束与限制。 CDM系统级限制和约束 1. 集群创建好以后不支持修改规格,如果需要使用更高规格的,需要重新创建一个集群。 2. ARM版本的CDM集群不支持Agent功能。CDM集群为ARM或X86版本,依赖于底层资源的架构。 3. CDM暂不支持控制迁移数据的速度,请避免在业务高峰期执行迁移数据的任务。 4. 当前CDM集群cdm.large实例规格网卡的基准/最大带宽为0.8/3 Gbps,单个实例一天传输数据量的理论极限值在8TB左右。同理,cdm.xlarge实例规格网卡的基准/最大带宽为4/10 Gbps,理论极限值在40TB左右;cdm.4xlarge实例规格网卡的基准/最大带宽为36/40 Gbps,理论极限值在360TB左右。对传输速度有要求的情况下可以使用多个数据集成实例实现。上述数据量为理论极限值,实际传输数据量受数据源类型、源和目的数据源读写性能、带宽等多方面因素制约,实测cdm.large规格最大可达到约8TB每天(大文件迁移到OBS场景)。推荐用户在正式迁移前先用小数据量实测进行速度摸底。 5. 迁移文件或对象时支持文件级增量迁移(通过配置跳过重复文件实现),但不支持断点续传。例如要迁移3个文件,第2个文件迁移到一半时由于网络原因失败,再次启动迁移任务时,会跳过第1个文件,从第2个文件开始重新传,但不能从第2个文件失败的位置重新传。 6. 文件迁移时,单个任务支持千万数量的文件,如果待迁移目录下文件过多,建议拆分到不同目录并创建多个任务。 7. 用户在CDM上配置的连接和作业支持导出到本地保存,考虑到密码的安全性,CDM不会将对应数据源的连接密码导出。因此在将作业配置重新导入到CDM前,需要手工编辑导出的JSON文件补充密码或在导入窗口配置密码。 8. 不支持集群自动升级到新版本,需要用户通过作业的导出和导入功能,实现升级到新版本。 9. 在无OBS的场景下,CDM系统不会自动备份用户的作业配置,需要用户通过作业的导出功能进行备份。 10. 如果配置了VPC对等连接,可能会出现对端VPC子网与CDM管理网重叠,从而无法访问对端VPC中数据源的情况。推荐使用公网做跨VPC数据迁移,或联系管理员在CDM后台为VPC对等连接添加特定路由。 11. CDM迁移,当目的端为DWS和NewSQL的时候,不支持将源端的主键和唯一索引等约束一起迁移过去。 12. CDM迁移作业时,需确保两个集群版本的JSON文件格式保持一致,才可以从将源集群的作业导入到目标集群。
        来自:
        帮助文档
        数据治理中心 DataArts Studio
        用户指南
        数据集成
        约束与限制
      • 评估结果查看
        本节为您介绍数据库迁移工具提供评估结果在线查看功能。 数据库迁移工具提供评估结果在线查看功能。用户在启动评估任务后,会自动跳转到评估结果界面。用户也可以通过迁移评估列表,点击“报告名”跳转到评估结果界面。评估结果主要是展示数据库的基本信息(如版本、字符集、磁盘空间推荐)、连接资源信息(如最大连接数)、表信息(表的大小、字段类型、有无主键等)、数据库结构信息(结构名、类型、数量、与目标库存在的差异)、对象关联信息(对象名、对象间依赖关系)、迁移权限检测(源库账号权限检测、解决方法)。
        来自:
        帮助文档
        云迁移服务CMS
        用户指南
        数据库迁移服务模块
        数据传输
        迁移评估
        评估结果查看
      • 新域名服务的优势
        优势 概括词 简介文案 丰富 域名种类丰富 天翼云域名服务提供了丰富的域名种类供用户注册,可以提供中文、英文等几十种域名类型。 实时 实时注册 天翼云域名服务在注册时直连注册管理机构API,实现实时的注册和查询服务。 管理 完善的域名管理 在域名管理中心您可看到域名注册日期、到期日期、DNS配置、实名认证、域名证书信息等 安全 安全可信 天翼云域名服务提供一个安全可信的域名服务平台,保障用户个人隐私数据安全 性价比 高性价比 天翼云域名服务致力于让用户花最少的钱,为用户提供最好的产品和最优质的服务。
        来自:
        帮助文档
        新域名服务
        产品介绍
        新域名服务的优势
      • 如何将Ingress服务暴露到公网
        本节介绍了云容器引擎的最佳实践:如何将Ingress服务暴露到公网。 如果你是通过Ingress访问你的服务,并且想通过公网访问,可为集群Ingress服务配置天翼云ELB。 具体配置步骤如下: 1、登录到控制台,进入服务所在的集群,选择菜单“网络“>”服务“,命名空间选择“kubesystem”,点击”创建服务“按钮。 2、其中负载均衡一栏,选择公网访问,从列表中选择一个要绑定的负载均衡(如果列表为空,请确认你是否有可用的负载均衡,没有的话,请先到ELB控制台创建)。 端口映射一栏,填写好容器端口和服务端口(该端口是负载均衡的监听端口)。如下所示: 注意 nginxingresscontroller pod 默认的http端口是10080,默认的https端口是10443。 如需修改,可以到nginxingresscontroller插件yaml修改端口号。 3、工作负载绑定一栏,类型选择Deployment,名称选择nginxingresscontrollernginxingresscontroller,然后点击提交。 注意 选择工作负载前请先确认nginxingresscontroller插件的版本,如果版本小于1.3.5,这里工作负载类型应选择DaemonSet 4、待ELB绑定后,即可通过服务列表中“集群外访问”中的外网地址访问服务了。
        来自:
        帮助文档
        云容器引擎 专有版/托管版
        最佳实践
        网络
        如何将Ingress服务暴露到公网
      • 制作并替换证书
        步骤二:替换证书 步骤 1 登录管理控制台。 步骤 2 在管理控制台右上角单击,选择区域。 说明 此处请选择与您的应用服务相同的区域。 步骤 3 在管理控制台左上角单击,选择“企业中间件”“分布式消息服务”“Kafka专享版”,进入分布式消息服务Kafka专享版页面。 步骤 4 单击待替换证书的实例名称,进入实例详情页面。 步骤 5 在“连接信息 > SSL证书”后,单击“替换”,弹出“替换SSL证书”对话框。 图 连接信息 步骤 6 参考下表,设置替换SSL证书的参数。 图 替换SSL证书 表 替换SSL证书参数说明 参数名称 说明 Key密码 输入制作证书中设置的keystore密码 Keystore密码 输入制作证书中设置的keystore密码 Keystore文件 导入“server.keystore.jks”证书 Truststore密码 输入服务端证书的Truststore密码 Truststore文件 导入“server.truststore.jks”证书 步骤 7 单击“确定”,弹出“替换SSL证书”对话框。 步骤 8 单击“确认”,完成证书的替换。 在“后台任务管理”页签,替换SSL证书任务的“状态”为“成功”时,表示替换证书成功。 说明 证书替换成功后,在实例详情页单击“下载”,下载的证书为分布式消息服务Kafka提供的证书,并非您自己制作的证书。
        来自:
        帮助文档
        分布式消息服务Kafka
        用户指南
        连接Kafka实例
        制作并替换证书
      • 服务协议
        此小节介绍天翼云数据库审计服务协议。 天翼云数据库审计服务协议
        来自:
        帮助文档
        数据库审计
        相关协议
        服务协议
      • 通过运维安全中心(云堡垒机)安装Agent
        应用场景 如果您已购买并使用运维安全中心(云堡垒机)服务专业版,可通过运维安全中心服务为主机安装企业主机安全的Agent。此安装方式无需获取主机账户密码或执行复杂的安装命令,可便捷的为单台或多台主机安装Agent。 前提条件 运维安全中心(云堡垒机)服务专业版,并通过运维安全中心(云堡垒机)纳管主机资源。 待安装Agent的主机为SSH协议类型的Linux主机,且主机网络连接正常。 已获取运维安全中心(云堡垒机)的系统管理员账号。 操作步骤 1.使用系统管理员账号登录运维安全中心(云堡垒机)系统。 2.在左侧导航栏,选择“运维> 快速运维”,进入“快速运维”界面。 3.选择“脚本控制台”页签,进入脚本控制台。 4.配置脚本运维信息。相关参数说明请参见下表,配置脚本运维信息 参数 说明 执行脚本 选择脚本“HSSAgent.sh”。 脚本参数 不填写。 执行账户 单击“选择”,选择待安装Agent的主机账户或账户组。 更多选项 可选设置。脚本任务默认在主机的Sudoers文件下执行,当主机账户没有该文件的执行权限时,需勾选“提权执行”。 5.单击“立即执行”,执行脚本任务。 6.脚本任务执行成功后,在执行结果列单击“展开”,展开执行结果,执行结果显示“install finished.[OK]”表示Agent安装成功。 7.在企业主机安全控制台,确认Agent安装结果。 8.登录企业主机安全控制台。 9.在左侧导航栏,选择“资产管理> 主机管理”,进入“主机管理”界面。 10.在“云服务器”页签,查看目标主机的Agent状态。 Agent状态为“在线”,表示Agent安装成功。
        来自:
        帮助文档
        企业主机安全
        最佳实践
        通过运维安全中心(云堡垒机)安装Agent
      • 进入客户控制台
        本文通过图文介绍进入客户控制台的步骤。 前提条件 已注册天翼云官网账号。如未注册,请参见:注册天翼云账号进行注册。 已开通AOne会议服务。如何开通,请参见:开通AOne会议服务。 操作步骤说明 1. 打开天翼云官网,注册并登录。 2. 在天翼云官网页面中,选择【产品】下的【视频】,并选择【AOne会议】。或直接访问会议产品详情页。 3. 在【AOne会议】产品详情页中选择【管理控制台】,进入会议控制台。
        来自:
        帮助文档
        AOne会议
        管理员指南
        进入客户控制台
      • Redis4.0/5.0实例
        本节介绍DCS Redis4.0和Redis5.0实例的产品规格,包括内存规格、实例可使用内存、连接数上限、最大带宽/基准带宽、参考性能(QPS)等。 实例各项指标如下: 实例已使用内存:您可以通过查看监控指标“内存利用率”和“已用内存”查看实例内存使用情况。 连接数上限:表示允许客户端同时连接的个数,即连接并发数。具体实例的连接数,可查看监控指标“活跃的客户端数量”。 QPS:即Query Per Second,表示数据库每秒执行的命令数。 带宽:您可以查看监控指标“流控次数”,确认带宽是否超过限额。其中,带宽还涉及监控指标“带宽使用率”,该指标仅供参考,可能会出现超过100%的情况,具体原因,可查看带宽使用率指标会超过100%的原因。 说明 Redis 4.0和Redis 5.0实例支持“单机”、“主备”、“Proxy集群”、“Cluster集群”和“读写分离”类型。 支持x86和Arm架构。 单机实例 Redis 4.0和Redis 5.0单机实例产品规格 内存规格 ( GB ) 实例可使用内存 ( GB ) 连接数上限 (默认 / 可配)(个) 基准 / 最大带宽 (Mbit/s) 参考性能 ( QPS ) 产品规格编码 (对应API的 speccode ) 1 1 10,000/50,000 80/80 80,000 x86:redis.single.xu1.large.1 Arm:redis.single.au1.large.1 2 2 10,000/50,000 128/128 80,000 x86:redis.single.xu1.large.2 Arm:redis.single.au1.large.2 4 4 10,000/50,000 192/192 80,000 x86:redis.single.xu1.large.4 Arm:redis.single.au1.large.4 8 8 10,000/50,000 192/192 100,000 x86:redis.single.xu1.large.8 Arm:redis.single.au1.large.8 16 16 10,000/50,000 256/256 100,000 x86:redis.single.xu1.large.16 Arm:redis.single.au1.large.16 24 24 10,000/50,000 256/256 100,000 x86:redis.single.xu1.large.24 Arm:redis.single.au1.large.24 32 32 10,000/50,000 256/256 100,000 x86:redis.single.xu1.large.32 Arm:redis.single.au1.large.32 48 48 10,000/50,000 256/256 100,000 x86:redis.single.xu1.large.48 Arm:redis.single.au1.large.48 64 64 10,000/50,000 384/384 100,000 x86:redis.single.xu1.large.64 Arm:redis.single.au1.large.64
        来自:
        帮助文档
        分布式缓存服务Redis版
        产品简介
        实例规格
        Redis4.0/5.0实例
      • 对象存储触发器
        参数 类型 示例值 描述 id String b5771f766cdf48edb1bad15418c 事件ID。标识事件的唯一值。 source String ctyun.zos 事件源。对象存储触发器固定为ctyun.zos。 specversion String 1.0 CloudEvents协议版本。 type String s3:ObjectCreated:Post 事件类型。 subject String ctyun.zos:b342b77ef26 :5d4ce56a08d :bucketname :objectname 事件主体。格式为ctyun.zos::::,其中是资源池ID,是天翼云账号ID,是对象存储产生事件的bucket名称,是对象存储产生事件的文件名称。 time Timestamp 20240305T13:52:18.374Z 事件产生的时间。 datacontenttype String application/json;charsetutf8 参数 data 的内容形式。 data Struct {"abc":"1111", "def":"xxxx"} 事件内容。JSON对象,内容由发起事件的服务决定。CloudEvents可能包含事件发生时由事件生产者给定的上下文, data 中封装了这些信息。 ctyunaccountid String 123456789 天翼云账号ID。 ctyun userid String 123456789 天翼云用户ID。 ctyunresourceid String 27aadda4db9411eea6fce8b47009 天翼云资源ID ctyuneventbusname String default 接收事件的事件总线名称,天翼云产品事件为default。 ctyunregion String bb9fdb42056fl1eda161 接收事件的地域。
        来自:
        帮助文档
        函数计算
        用户指南
        云工作流
        控制台操作
        工作流调度
        事件总线类触发器
        对象存储触发器
      • VPC终端节点操作指导
        本文介绍VPC终端节点的相关操作。 创建终端节点服务 查看终端节点服务 删除终端节点服务 配置连接管理 管理服务白名单 管理端口映射
        来自:
        帮助文档
        虚拟私有云 VPC
        VPC终端节点
        VPC终端节点操作指导
      • IAM权限(1)
        天翼云提供统一身份认证(Identity and Access Management,简称IAM)服务,是提供用户进行权限管理的基础服务,可以帮助您安全的控制云服务和资源的访问及操作权限。 您通过IAM服务定义企业项目、创建子用户,轻松实现IAM子用户对KMS资源的访问控制、权限分配等。 说明 IAM 权限作用于KMS产品控制台的功能访问以及KMS服务的OpenAPI接口调用。 权限管理 默认情况下,主账号创建的IAM用户没有任何权限,需要将其加入特定的用户组,并给用户组授予KMS产品的权限策略(包括系统策略和自定义策略),授权后IAM用户就能获得策略中定义的KMS产品的使用权限。 KMS产品支持企业项目管理,若您需要对KMS服务中的资源进行分组和管理,形成逻辑隔离,您可以创建企业项目,并将资源划分至不同的企业项目中,不同的企业项目可以绑定不同的用户组,并给用户组授予KMS产品的权限策略(包括系统策略和自定义策略),从而实现对特定资源的授权。 权限配置 IAM权限管理:进入天翼云IAM权限配置界面,可以进行IAM用户及用户组的创建,并在用户组列表中点击“授权”,为用户组添加KMS产品对应的权限策略。KMS权限策略分为系统策略和自定义策略,系统策略默认提供,您也可以在“策略管理”界面创建自定义策略。用户组授权记录均可在“授权管理”界面查看并管理。 企业项目管理:进入天翼云IAM权限 配置界面,在“企业项目”界面可以创建并管理企业项目,创建企业项目后可进行资源的迁入迁出,绑定用户组,并给用户组授予KMS产品的权限策略(包括系统策略和自定义策略)。
        来自:
      • 设置人机识别
        本文将向您介绍如何使用边缘安全加速平台安全与加速服务提供的Bot人机识别功能。 功能介绍 边缘安全加速平台安全与加速服务提供的人机识别模块支持Cookie挑战、跳转挑战、人机挑战等一系列反爬能力,帮助客户及时且精准地拦截爬虫流量,保障网站业务安全。 注意 目前控制台尚未开放人机识别功能,如有防护需求请通过 前提条件 已经订购边缘安全加速平台安全与加速服务,若未订购,请参见服务开通。 在控制台新增域名,请参见添加服务域名。 购买Bot防护扩展服务,支持Bot防护相关功能。 人机识别功能 Cookie基础检测 客户端标识检测:客户端标识检测是Bot防护第一检测策略,校验下发的Cookie个数和完整性,无客户端标识、客户端标识缺失、客户端标识解析失败都需要配置。 无客户端标识:针对请求没有Cookie的情况进行处理。 处理动作:拦截/告警/跳转/放行。 拦截:拦截请求。 告警:仅记录请求。 跳转:GET请求启动302跳转策略,POST请求启动307跳转策略。 放行:不对该异常做处理,另外不会再校验其他的BOT防护规则。 统计粒度:静态Cookie/IP+UA/IP。 触发条件:达到触发条件的请求将对其执行处理动作,并支持配置处理动作持续时长(触发规则后的惩罚时间)。 客户端标识缺失:针对请求带回Cookie个数小于下发的个数(最多会下发四个)进行处理。 客户端标识解析失败:针对失败解析Cookie的情况下进行处理。 其他字段: 客户端标识过期时间:默认15天,单位天,最大值365天。 白名单:即例外条件,符合条件的请求不进行功能检测。
        来自:
        帮助文档
        边缘安全加速平台
        安全与加速
        安全
        Bot防护
        设置人机识别
      • gRPC协议治理
        前提条件 1. 已开通云容器引擎,至少有一个云容器引擎集群实例。产品入口:云容器引擎。 2. 开通天翼云服务网格实例。 操作步骤 gRPC是远程过程调用框架(RPC),有多语言的实现,底层采用HTTP2作为传输协议;由于HTTP2采用长连接机制,在负载均衡的场景下可能导致负载的不平衡,本文介绍负载不均衡的场景以及如何通过服务网格实现负载均衡。 部署gRPC server和client应用。 apiVersion: apps/v1 kind: Deployment metadata: name: grpcserverv1 labels: app: grpcserver version: v1 spec: replicas: 1 selector: matchLabels: app: grpcserver version: v1 template: metadata: labels: app: grpcserver version: v1 spec: containers: args: address0.0.0.0:8080 image: registryvpccrshuadong1.cnspinternal.ctyun.cn/library/grpcserver imagePullPolicy: Always name: grpcserver ports: containerPort: 8080 apiVersion: apps/v1 kind: Deployment metadata: name: grpcserverv2 labels: app: grpcserver version: v2 spec: replicas: 1 selector: matchLabels: app: grpcserver version: v2 template: metadata: labels: app: grpcserver version: v2 spec: containers: args: address0.0.0.0:8080 image: registryvpccrshuadong1.cnspinternal.ctyun.cn/library/grpcserver imagePullPolicy: Always name: grpcserver ports: containerPort: 8080 apiVersion: v1 kind: Service metadata: name: grpcserver labels: app: grpcserver spec: ports: name: grpcbackend port: 8080 protocol: TCP selector: app: grpcserver type: ClusterIP apiVersion: apps/v1 kind: Deployment metadata: name: grpcclient labels: app: grpcclient spec: replicas: 1 selector: matchLabels: app: grpcclient template: metadata: labels: app: grpcclient "sidecar.istio.io/inject": "true" spec: containers: image: registryvpccrshuadong1.cnspinternal.ctyun.cn/library/grpcclient imagePullPolicy: Always command: ["/bin/sleep", "3650d"] name: grpcclient 部署之后的pod列表(一个client,两个版本的server): 通过client访问server,可以看到总是访问服务端的同一个实例。 kubectl exec it grpcclientb7499b9c45d2s n grpc /bin/greeterclient insecuretrue addressgrpcserver:8080 repeat10 为grpc client注入sidecar(打上标签"sidecar.istio.io/inject": "true"),重新部署grpcclient之后可以看到pod列表如下: 再次通过grpcclient访问grpcserver可以看到请求交替访问两个版本的grpcserver: 部署流量治理策略使70%的流量访问v2版本的grpcserver,30%的流量访问v1版本的grpcserver。 apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: drgrpcserver spec: host: grpcserver trafficPolicy: loadBalancer: simple: ROUNDROBIN subsets: name: v1 labels: version: "v1" name: v2 labels: version: "v2" apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: vsgrpcserver spec: hosts: "grpcserver" http: match: port: 8080 route: destination: host: grpcserver subset: v1 weight: 30 destination: host: grpcserver subset: v2 weight: 70 再次访问可以看到请求在grpcserver的两个版本之间不再是交替访问,而是大概按照7:3的比例访问:
        来自:
        帮助文档
        应用服务网格
        用户指南
        流量管理中心
        多协议治理
        gRPC协议治理
      • 备份迁移
        % ' AND SP.name NOT LIKE 'NT AUTHORITY%' AND SP.name NOT LIKE 'NT SERVICE%' AND SP.name NOT IN ('rdsadmin','rdsbackup','rdsuser','rdsmirror','public') 步骤 2 执行步骤 1 脚本可获取如下执行脚本。 图 获取执行脚本 步骤 3 复制步骤 2 中的执行脚本在目标端直接执行,创建出来的Login账号跟原实例密码一致。 步骤 4 将新建的Login账号跟用户当前RDS SQL Server实例上的迁移过来的数据库用户权限进行映射(mapping),以保证该账号在当前实例上的权限一致性,执行脚本如下。 declare @DBName nvarchar(200) declare @Loginname nvarchar(200) declare @SQL nvarchar(MAX) set @Loginname 'TestLogin7' //输入Login名称逐个执行 declare DBNameCursor cursor for select quotename(name)from sys.databases where databaseid > 4 and state 0 and name not like '%$%' and name <> 'rdsadmin' open DBNameCursor fetch next from DBNameCursor into @DBName WHILE @@FETCHSTATUS 0 begin SET @SQL' USE '+ (@DBName)+ ' if exists(select top 1 1 from sys.sysusers where name '''+ @LoginName +''') begin ALTER USER '+@Loginname+' with login '+@Loginname+'; end ' print @SQL EXEC (@SQL) fetch next from DBNameCursor into @DBName end close DBNameCursor deallocate DBNameCursor 以上脚本执行完成后,用户即可在自己的新实例上看到同名的登录账号,并且密码跟权限是完全跟本地一致的。 DBLink连接 DBLink连接指SQL Server支持用户通过创建DBLink连接的方式,跟外部实例上的数据库进行交互,这种方式可以极大的方便用户不同实例间,不同数据库类型之间的数据库查询,同步,比较,所以大部分用户都会在本地实例上用到该服务,但是迁移上云后,本地DBLink是不会自动同步到云上实例的,还需要简单的手动进行同步。 步骤 1 通过微软提供的官方Microsoft SQL Server Management Studio客户端工具连接本地实例与云上实例,同时在“服务器对象> 链接服务器”下找到当前实例的DBLink链接。 图 查看DBLink链接 步骤 2 选中链接服务器,然后按F7,会自动弹出对象资源管理信息页,在该页面中可以方便你快速的自动创建脚本。 图 自动创建脚本 步骤 3 在新窗口中,可以看到当前实例上所有DBLink的创建脚本,仅需复制该脚本到目标实例上,并修改@rmtpassword上的密码即可执行创建操作。 USE [master] GO / Object: LinkedServer [DRSTESTREMOTE] Script Date: 2019/5/25 17:51:50 / EXEC master.dbo.spaddlinkedserver @server N'DRSTESTREMOTE', @srvproductN'', @providerN'SQLNCLI', @datasrcN'DESKTOPB18JH5TSQLSERVER2016EE' / For security reasons the linked server remote logins password is changed with
        来自:
        帮助文档
        数据库复制
        常见问题
        备份迁移
      • 天翼云文档数据库服务协议
        本章节内容主要介绍文档数据库服务协议 自2021年11月11日起,新版天翼云文档数据库服务协议生效。详情请参见这里。 天翼云文档数据库服务协议 历史版本(20191111)
        来自:
        帮助文档
        文档数据库服务
        相关协议
        天翼云文档数据库服务协议
      • 防护配置常见问题
        WAF原生版是否支持HTTPS双向认证? HTTPS双向认证是相较于HTTPS单向认证而言的,HTTPS单向认证是指客户端在请求服务器数据时,需要验证服务器的身份。而双向认证是在此基础上,服务器端验证客户端的身份,从而实现双向认证。 双向认证主要应用场景是部分重要业务需要验证客户端身份时,需要使用双向验证。而使用WAF防护的业务,一般为对公众提供的Web服务,其原始业务不会有双向验证的要求,故当前WAF原生版不支持HTTPS双向认证。 WAF原生版是否支持WebSocket协议? WebSocket是HTML5引入的一项技术,用于在Web应用程序中实现实时双向通信。与传统的HTTP请求响应模型不同,WebSocket允许服务器主动向客户端推送数据,而不需要客户端发起请求。WebSocket连接保持打开状态,允许客户端和服务器之间进行双向通信,这为实时应用程序提供了更高效和实时的通信方式。当前WAF支持WebSocket进行用户业务的转发,实现WebSocket通信。 若一个IP同时配置了白名单和黑名单,优先级是什么? IP白名单的优先级高于黑名单,若同时配置了白名单和黑名单,则优先以白名单为准,详情请参见IP黑白名单。 WAF支持设置单条防护规则的防护状态吗? 支持。 WAF原生版提供具体防护规则的防护开关。您可以根据业务需要选择开启或关闭规则的防护。 WAF支持针对地理位置配置禁止访问策略吗? 支持。 地域访问控制支持针对地理位置的黑名单封禁,可指定需要封禁的国家、地区,阻断该区域的来源IP的访问。通过地域访问控制模块,可以满足针对地理位置的黑名单封禁。支持封禁的地域请参见地域访问控制。 注意 WAF云SaaS模式的基础版不支持地域访问控制功能,请升级到更高版本使用。
        来自:
        帮助文档
        Web应用防火墙(原生版)
        常见问题
        防护配置类
        防护配置常见问题
      • Redis 5.0 Cluster主备实例测试数据
        测试环境说明 项目 说明 测试实例规格 基础Cluster版双副本24G(3分片) 测试实例引擎版本 5.0 测试实例地域和可用区 上海36 可用区1 压测机器的规格 c7.4xlarge.2 16核 32G 压测机器的操作系统 CTyunOS 2.0.121.06.4 64位 压测机器地域和可用区 上海36 可用区1 压测机器网络 与Redis实例为相同VPC区,与Redis实例可通过VPC连接 压测工具 redisbenchmark 测试命令 plaintext redisbenchmark h ${host} p ${port} cluster a ${password} c ${connectionnum} n 20000000 d 32 r 2000000 t set,get threads 8 说明 参数说明,根据具体情况替换: ${host}: Redis连接地址 , ${port}:Redis服务端口,${password} : 密码 , ${connectionnum}: 连接数。 测试结果 以下测试结果仅供参考,不同的机器环境和网络波动等客观条件可能产生性能差异。 性能指标说明: 性能指标 说明 QPS Query Per Second,表示每秒处理的请求数,单位是次/秒。 延迟 操作的平均延迟时间,单位为毫秒(ms)。 %延迟 比如99%操作延迟,指99%操作的最大延迟时间,单位为毫秒(ms)。例如该指标的值为15毫秒,表示99%的请求可以在15毫秒内被处理。 表1 SET 命令的测试结果 实例规格 CPU类型 连接数 QPS 平均延迟(ms) 95%延迟(ms) 99%延迟(ms) 基础Cluster版双副本24G(3分片) X86 1000 387724 2.095 3.279 3.919 基础Cluster版双副本24G(3分片) X86 3000 367795 7.084 11.087 12.919 基础Cluster版双副本24G(3分片) X86 10000 273676 34.303 51.679 255.103 表2 GET 命令的测试结果 实例规格 CPU类型 连接数 QPS 平均延迟(ms) 95%延迟(ms) 99%延迟(ms) 基础Cluster版双副本24G(3分片) X86 1000 453905 1.833 2.615 3.439 基础Cluster版双副本24G(3分片) X86 3000 450359 5.568 8.647 9.999 基础Cluster版双副本24G(3分片) X86 10000 340147 27.503 38.303 236.159
        来自:
        帮助文档
        分布式缓存服务Redis版
        性能白皮书
        Redis 5.0 Cluster主备实例测试数据
      • Redis 7.0 Cluster主备实例测试数据
        测试环境说明 项目 说明 测试实例规格 基础Cluster版双副本24G(3分片)。 测试实例引擎版本 7.0。 测试实例地域和可用区 上海36 可用区1。 压测机器的规格 c7.4xlarge.2。 压测机器的操作系统 CTyunOS 2.0.121.06.4 64位。 压测机器地域和可用区 上海36 可用区1。 压测机器网络 与Redis实例为相同VPC区,与Redis实例可通过VPC连接。 压测工具 redisbenchmark。 测试命令 redisbenchmark h ${host} p ${port} cluster a ${password} c ${connectionnum} n 20000000 d 32 r 2000000 t set,get threads 8 说明 参数说明,根据具体情况替换: ${host}: Redis连接地址 , ${port}:Redis服务端口,${password} : 密码 , ${connectionnum}: 连接数。 测试结果 以下测试结果仅供参考,不同的机器环境和网络波动等客观条件可能产生性能差异。 性能指标说明: 性能指标 说明 QPS Query Per Second,表示每秒处理的请求数,单位是次/秒。 延迟 操作的平均延迟时间,单位为毫秒(ms)。 %延迟 比如99%操作延迟,指99%操作的最大延迟时间,单位为毫秒(ms)。例如该指标的值为15毫秒,表示99%的请求可以在15毫秒内被处理 表1 SET 命令的测试结果 实例规格 CPU类型 连接数 QPS 平均延迟(ms) 95%延迟(ms) 99%延迟(ms) 基础Cluster版双副本24G(3分片) X86 1000 418480.09 2.302 3.143 3.751 基础Cluster版双副本24G(3分片) X86 3000 431322.66 6.691 9.167 12.191 基础Cluster版双副本24G(3分片) X86 10000 394960.31 23.996 36.127 207.999 表2 GET 命令的测试结果 实例规格 CPU类型 连接数 QPS 平均延迟(ms) 95%延迟(ms) 99%延迟(ms) 基础Cluster版双副本24G(3分片) X86 1000 454215.09 2.116 2.487 2.855 基础Cluster版双副本24G(3分片) X86 3000 445960.72 6.486 7.359 208.511 基础Cluster版双副本24G(3分片) X86 10000 417466.81 23.029 31.855 237.823
        来自:
        帮助文档
        分布式缓存服务Redis版
        性能白皮书
        Redis 7.0 Cluster主备实例测试数据
      • 开发SQL脚本
        本章节主要介绍开发脚本的开发SQL脚本功能。 对SQL脚本进行在线开发、调试和执行,开发完成的脚本也可以在作业中执行(请参见开发作业)。 前提条件 已开通相应的云服务并在云服务中创建数据库。Flink SQL脚本不涉及该操作。 已创建与脚本的数据连接类型匹配的数据连接,请参见新建数据连接。Flink SQL脚本不涉及该操作。 当前用户已锁定该脚本,否则需要通过“抢锁”锁定脚本后才能继续开发脚本。新建或导入脚本后默认被当前用户锁定,详情参见提交版本并解锁章节中的“编辑锁定功能”。 操作步骤 1.登录DataArts Studio控制台。选择实例,点击“进入控制台”,选择对应工作空间的“数据开发”模块,进入数据开发页面。 详见下图:选择数据开发 2.在数据开发主界面的左侧导航栏,选择“数据开发 > 脚本开发”。 3.在脚本目录中,双击脚本名称,进入脚本开发页面。 4.在编辑器上方,选择如下表所示的属性。创建Flink SQL脚本时请跳过此步骤。 SQL脚本属性 属性 说明 数据连接 选择数据连接。 数据库 选择数据库。 资源队列 选择执行DLI作业的资源队列。当脚本为DLI SQL时,配置该参数。如需新建资源队列,请参考以下方法: 单击,进入DLI的“队列管理”页面新建资源队列。 前往DLI管理控制台进行新建。 说明 DLI提供默认资源队列“default”,该资源队列不支持insert、load、cat命令。 如需以“key/value”的形式设置提交SQL作业的属性,请单击。最多可设置10个属性,属性说明如下: dli.sql.autoBroadcastJoinThreshold(自动使用BroadcastJoin的数据量阈值) dli.sql.shuffle.partitions(指定Shuffle过程中Partition的个数) dli.sql.cbo.enabled(是否打开CBO优化策略) dli.sql.cbo.joinReorder.enabled(开启CBO优化时,是否允许重新调整join的顺序) dli.sql.multiLevelDir.enabled(OBS表的指定目录或OBS表分区表的分区目录下有子目录时,是否查询子目录的内容;默认不查询) dli.sql.dynamicPartitionOverwrite.enabled(在动态分区模式时,只会重写查询中的数据涉及的分区,未涉及的分区不删除) 5.在编辑器中输入SQL语句(支持输入多条SQL语句)。 说明 需要注意,使用SQL语句获取的系统日期和通过数据库工具获取的系统日期是不一样,查询结果存到数据库是以YYYYMMDD格式,而页面显示查询结果是经过转换后的格式。 SQL语句之间以“;”分隔。如果其它地方使用“;”,请通过“”进行转义。例如: select 1; select from a where b"dsfa;"; example 1;example 2. 为了方便脚本开发,数据开发模块提供了如下能力: − 脚本编辑器支持使用如下快捷键,以提升脚本开发效率。 Ctrl + /:注释或解除注释光标所在行或代码块 Ctrl + S:保存 Ctrl + Z:撤销 Ctrl + Y:重做 Ctrl + F:查找 Ctrl + Shift + R:替换 Ctrl + X:剪切,光标未选中时剪切一行 Alt + 鼠标拖动:列模式编辑,修改一整块内容 Ctrl + 鼠标点选:多列模式编辑,多行缩进 Shift + Ctrl + K:删除当前行 Ctrl + →或Ctrl + ←:向右或向左按单词移动光标 Ctrl + Home或Ctrl + End:移至当前文件的最前或最后 Home或End:移至当前行最前或最后 Ctrl + Shift + L:鼠标双击相同的字符串后,为所有相同的字符串添加光标,实现批量修改 − 支持系统函数功能(当前Flink SQL、Spark SQL、ClickHouse SQL、Presto SQL不支持该功能)。 单击编辑器右侧的“系统函数”,显示该数据连接类型支持的函数,您可以双击函数到编辑器中使用。 − 支持可视化读取数据表生成SQL语句功能(当前Flink SQL、Spark SQL、ClickHouse SQL、Presto SQL不支持该功能)。 单击编辑器右侧的“数据表”,显示当前数据库或schema下的所有表,可以根据您的需要勾选数据表和对应的列名,在右下角点击“生成SQL语句”,生成的SQL语句需要您手动格式化。 − 支持脚本参数(当前仅Flink SQL不支持该功能)。 在SQL语句中直接写入脚本参数,调试脚本时可以在脚本编辑器下方输入参数值。如果脚本被作业引用,在作业开发页面可以配置参数值,参数值支持使用EL表达式(参见表达式概述)。 脚本示例如下,其中str1是参数名称,只支持英文字母、数字、“”、“”、“ ”,最大长度为16字符,且参数名称不允许重名。 > select ${str1} from data; 另外,对于MRS Spark SQL和MRS Hive SQL脚本的运行程序参数,除了在SQL脚本中参考语句“set hive.exec.paralleltrue;”配置参数,也可以在对应作业节点属性的“运行程序参数”中配置该参数。 详见下图:运行程序参数 − 支持设置脚本责任人 单击编辑器右侧的“脚本基本信息”,可设置脚本的责任人和描述信息。 6.(可选)在编辑器上方,单击“格式化”,格式化SQL语句。创建Flink SQL脚本请跳过此步骤。 7.在编辑器上方,单击“运行”。如需单独执行某部分SQL语句,请选中SQL语句再运行。SQL语句运行完成后,在编辑器下方可以查看脚本的执行历史、执行结果。Flink SQL脚本不涉及,请跳过该步骤。 说明 对于执行结果支持如下操作: 重命名:可通过双击执行结果页签的名称进行重命名,也可通过右键单击执行结果页签的名称,单击重命名。重命名不能超过16个字符。 可通过右键单击执行结果页签的名称关闭当前页签、关闭左侧页签、关闭右侧页签、关闭其它页签、关闭所有页签。 MRS集群为非安全集群、且未限制命令白名单时,在Hive SQL执行过程中,添加application name信息后,则可以方便的根据脚本名称与执行时间在MRS的Yarn管理界面中根据job name找到对应任务。需要注意若默认引擎为tez,则要显式配置引擎为mr,使tez引擎下不生效。 8.在编辑器上方,单击,保存脚本。 如果脚本是新建且未保存过的,请配置如下表所示的参数。 保存脚本 参数 是否必选 说明 脚本名称 是 脚本的名称,只能包含字符:英文字母、数字、中文、中划线、下划线和点号,且长度小于等于128个字符。 责任人 否 为该脚本指定责任人。默认为创建脚本的人为责任人。 描述 否 脚本的描述信息。 选择目录 是 选择脚本所属的目录,默认为根目录。 说明 如果脚本未保存,重新打开脚本时,可以从本地缓存中恢复脚本内容。
        来自:
        帮助文档
        数据治理中心 DataArts Studio
        用户指南
        数据开发
        脚本开发
        开发脚本
        开发SQL脚本
      • 管理计算节点参数
        您可以根据实际情况,在控制台修改计算节点的参数配置。 操作步骤 1. 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 分布式关系型数据库 ,进入分布式关系型数据库产品页面。然后单击管理控制台 ,进入概览页面。 2. 在左侧导航栏,选择DRDS > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。 3. 在实例列表中,找到目标实例,单击操作 列的管理 ,进入实例基本信息页面。 4. 单击参数管理 ,进入计算节点参数页签。 5. 在参数列表右上方,选择目标节点。 6. 在参数列表中,查看并修改目标参数的当前值。 参数 是否需要重启 允许值 默认值 描述 latchLimit 是 165535 800 应用系统到DBProxy前端连接数限制。 调整垃圾回收(GC)算法 是 parallelgc garbagefirst parallelgc 计算节点JAVA虚拟机(JVM)提供的内存垃圾回收器,用于回收内存空间。 7. 单击参数列表上方的保存。 说明 您也可以单击重置,将当前的参数配置快速重置为上一次保存时的参数配置。
        来自:
        帮助文档
        分布式关系型数据库
        用户指南
        参数管理
        管理计算节点参数
      • 基于天翼云物理机搭建Oracle RAC集群
        1、手册示例使用的版本的 OS 版本为 CentOS 6.8, Oracle 版本为 11gR2、 12c。此外, 对用户常用的 OS 版本 CentOS 7、 Oracle 版本 12c 会在操作差异时给出提示。 基于天翼云物理机搭建Oracle RAC集群指南6+11G.pdf 2、手册示例使用的版本的 OS 版本为 CentOS 6.8, Oracle 版本为11gR2、 12c。此外, 对用户常用的 OS 版本 CentOS 7、 Oracle 版本 12c 会在操作差异时给出提示。 基于天翼云物理机搭建Oracle RAC集群指南6+12C.pdf 3、手册示例使用的版本的 OS 版本为 CentOS 7.4 64bit, Oracle 版本为 11gR2、12c。此外, 对用户常用的 OS 版本 CentOS 6、 Oracle 版本 12c 会在操作差异时给出提示。 基于天翼云物理机搭建Oracle RAC集群指南7+11G.pdf 4、手册示例使用的版本的 OS 版本为 CentOS 7.4 64bit, Oracle 版本为 11gR2、12c。此外, 对用户常用的 OS 版本 CentOS 6、 Oracle 版本 12c 会在操作差异时给出提示。 基于天翼云物理机搭建Oracle RAC集群指南7+12C.pdf
        来自:
        帮助文档
        物理机 DPS
        最佳实践
        基于天翼云物理机搭建Oracle RAC集群
      • 1
      • ...
      • 185
      • 186
      • 187
      • 188
      • 189
      • ...
      • 548
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      天翼云新春焕新季

      云主机开年特惠28.8元/年,0元秒杀等你来抢!

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      出海产品促销专区

      爆款云主机低至2折,高性价比,不限新老速来抢购!

      天翼云奖励推广计划

      加入成为云推官,推荐新用户注册下单得现金奖励

      产品推荐

      物理机 DPS

      多活容灾服务

      弹性伸缩服务 AS

      弹性高性能计算 E-HPC

      天翼云CTyunOS系统

      AI Store

      公共算力服务

      模型推理服务

      应用托管

      推荐文档

      C++ API

      产品介绍

      修改描述

      玩转天翼云⑦:Linux扩展Swap分区的三种方法

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号