爆款云主机低至25.83元/年
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 云聚517 · 好价翼起拼 NEW 爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 聚力AI赋能 天翼云大模型专项 大模型特惠专区·Token Plan 轻享包低至9.9元起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 企业出海解决方案 NEW 助力您的业务扬帆出海,通达全球!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
星辰TokenHub
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
可信数据空间
  • 可信数据空间
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

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

定价

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

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      天翼云远程监控_相关内容
      • Hikari连接池监控
        本文主要介绍Hikari连接池监控 介绍APM采集的Hikari连接池监控指标的类别、名称、含义等信息。 表 Hikari连接池监控采集参数 参数名 数据类型 应用类型 默认值 Agent支持的起始版本 Agent支持的终止版本 描述 获取连接调用链上报时间阈值(ms) integer JAVA 1 2.1.0 getConnection方法调用链上报阈值,不超过该阈值不上报。 getConnection时是否获取池内信息 radio JAVA false 2.1.0 getConnection时是否获取池内信息。 表 Hikari连接池监控指标说明 指标类别 指标 指标名称 指标说明 单位 数据类型 默认聚合方式 ::::::: 数据源(dataSource,数据源。) url url url ENUM LAST 数据源(dataSource,数据源。) maximumPoolSize 最大允许连接数 最大允许连接数 INT LAST 数据源(dataSource,数据源。) leakDetectionThreshold 连接池大小上限 连接池大小上限 INT LAST 数据源(dataSource,数据源。) validationTimeout 等待线程数 等待线程数 INT LAST 数据源(dataSource,数据源。) maxLifetime 等待线程数上限 等待线程数上限 INT LAST 数据源(dataSource,数据源。) poolingCount 池中连接数 池中连接数 INT LAST 数据源(dataSource,数据源。) poolingPeak 最大池中连接数 最大池中连接数 INT MAX 数据源(dataSource,数据源。) activeCount 活跃连接数 活跃连接数 INT LAST 数据源(dataSource,数据源。) activePeak 最大活跃连接数 最大活跃连接数 INT MAX 数据源(dataSource,数据源。) logicConnectCount 获取连接总数 获取连接总数 INT SUM 数据源(dataSource,数据源。) maxWait 获取连接最大等待时间 获取连接最大等待时间 INT LAST 数据源(dataSource,数据源。) removeAbandoned 自动回收超时连接 是否自动回收超时连接 STRING LAST 数据源(dataSource,数据源。) removeAbandonedCount 超时连接回收次数 超时连接回收次数 INT LAST 数据源(dataSource,数据源。) removeAbandonedTimeoutMillis 连接使用时长上限 如果池中连接被获取且超过该时长未被还回,则回收该连接 INT LAST 数据源(dataSource,数据源。) testWhileIdle 空闲连接有效性校验 当应用向连接池申请连接且该连接被判断为空闲连接时是否校验其有效性 STRING LAST 数据源(dataSource,数据源。) testOnBorrow 获取连接有效性校验 在连接池中取连接前校验连接是否有效 STRING LAST 数据源(dataSource,数据源。) testOnReturn 归还连接有效性校验 当应用归还连接时是否校验连接有效性 STRING LAST 数据源(dataSource,数据源。) minEvictableIdleTimeMillis 池中连接可空闲的时间 池中连接可空闲的时间 INT LAST 数据源(dataSource,数据源。) timeBetweenEvictionRunsMillis 检查池中连接空闲周期 检查池中连接空闲周期 INT LAST 数据源(dataSource,数据源。) driverName 驱动名称 驱动名称 STRING LAST 数据源(dataSource,数据源。) totalConnections 总连接数 总连接数 INT LAST 数据源(dataSource,数据源。) activeConnections 活跃连接数 活跃连接数 INT LAST 数据源(dataSource,数据源。) idleConnections 空闲连接数 空闲连接数 INT LAST 数据源(dataSource,数据源。) threadsAwaitingConnection 等待连接数 等待连接数 INT LAST 获取连接详情(connection,获取连接详情。) url 连接地址 连接地址 ENUM LAST 获取连接详情(connection,获取连接详情。) concurrentMax 最大并发 最大并发 INT MAX 获取连接详情(connection,获取连接详情。) invokeCount 调用次数 调用次数 INT SUM 获取连接详情(connection,获取连接详情。) totalTime 总时间 总时间 INT SUM 获取连接详情(connection,获取连接详情。) errorCount 错误次数 错误次数 INT SUM 获取连接详情(connection,获取连接详情。) maxTime 最慢调用 最慢调用 INT SUM 获取连接详情(connection,获取连接详情。) range1 010ms 响应时间在010ms范围请求数 INT SUM 获取连接详情(connection,获取连接详情。) range2 10100ms 响应时间在10100ms范围请求数 INT SUM 获取连接详情(connection,获取连接详情。) range3 100500ms 响应时间在100500ms范围请求数 INT SUM 获取连接详情(connection,获取连接详情。) range4 5001000ms 响应时间在5001000ms范围请求数 INT SUM 获取连接详情(connection,获取连接详情。) range5 110s 响应时间在110s范围请求数 INT SUM 获取连接详情(connection,获取连接详情。) range6 10s以上 响应时间在10s以上请求数 INT SUM 异常(exception,Hikari调用的异常信息统计。) exceptionType 异常类型 异常类型 ENUM LAST 异常(exception,Hikari调用的异常信息统计。) causeType 异常类 发生异常的类 ENUM LAST 异常(exception,Hikari调用的异常信息统计。) count 次数 该异常的发生次数 INT SUM 异常(exception,Hikari调用的异常信息统计。) message 异常消息 该异常产生的异常消息 STRING LAST 异常(exception,Hikari调用的异常信息统计。) stackTrace 异常堆栈 该异常产生的堆栈信息 CLOB LAST 版本(version,版本。) version 版本 版本 STRING LAST
        来自:
        帮助文档
        应用性能管理
        产品介绍
        指标总览
        数据库
        Hikari连接池监控
      • 查看应用
        本节帮助您了解如何查看应用。 操作场景 创建完应用后,系统会在应用管理页签生成一条自定义应用信息,您可以在应用管理页签查看应用详情,也可以根据应用名称快速搜索目标应用。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本节我们选择华东1。 3. 依次选择“网络”,单击“天翼云SDWAN”,进入天翼云SDWAN总览页面。 4. 选择“应用管理”,单击“应用管理”。 5. 用户可查看当前已创建好的自定义应用和系统默认应用。
        来自:
        帮助文档
        天翼云SD-WAN
        智能网关(硬件版)
        应用管理
        应用管理
        查看应用
      • 工作空间角色权限
        管理员权限:由ctiam定义,除租户主账户外可定义多个管理员,通过给用户组授权【智算服务平台管理员权限】,可以读写所有工作空间下所有用户所有功能的数据。 工作空间管理员:在工作空间定义,创建者+创建的时候可以把别人添加成管理员角色,可以读写自己工作空间里面的所有用户的数据 算法开发:在工作空间内定义的,只能读写工作空间内自己的数据,无法读写其他账号创建的数据,但是可以读取其他账号分享给自己的基础数据集和标注数据集。 算法运维:在工作空间内定义的。可以管理(包括停止和删除,不允许创建)工作空间内所有用户的任务类数据(包括开发机、训练任务)用于进行实例任务的运维和异常排查,但是不能管理其他用户的资产。 权限点名称 工作空间角色(IAM管理员、二级管理员和工作空间管理员) 工作空间角色(算法开发:+自己创建的数据) 工作空间(算法运维+自己创建的数据) 工作空间角色(算法运维+他人创建数据) 工作空间用户添加 允许 不允许 不允许 不允许 工作空间用户列表 允许 允许 允许 允许 工作空间用户编辑 允许 不允许 不允许 不允许 工作空间用户删除 允许 不允许 不允许 不允许 工作空间配置菜单 允许 不允许 不允许 不允许 工作空间配置按钮 允许 不允许 不允许 不允许 数据集创建 允许 允许 允许 不允许 数据集删除 允许 允许 允许 不允许 数据集查看 允许 允许 允许 不允许 数据集导入 允许 允许 允许 不允许 数据集重命名 允许 允许 允许 不允许 数据集普通加速 允许 允许 允许 不允许 数据集发布 允许 允许 允许 不允许 数据集导出 允许 允许 允许 不允许 数据集下载 允许 允许 允许 不允许 数据集标注 允许 允许 允许 不允许 数据集清洗 允许 允许 允许 不允许 数据集推送到高速缓存 允许 允许 允许 不允许 数据集制作副本 允许 允许 允许 不允许 数据集分享或取消分享 允许 允许 允许 不允许 基础数据集创建 允许 允许 允许 不允许 基础数据集查看 允许 允许 允许 不允许 基础数据集修改可见范围 允许 允许 允许 不允许 基础数据集重命名 允许 允许 允许 不允许 基础数据集修改挂载路径 允许 允许 允许 不允许 基础数据集删除 允许 允许 允许 不允许 基础数据集查看文件 允许 允许 允许 不允许 基础数据集加速到智算存储 允许 允许 允许 不允许 基础数据集备份到普通存储 允许 允许 允许 不允许 数据处理重启(删除) 允许 允许 允许 不允许 数据处理终止(删除) 允许 允许 允许 不允许 数据处理新建 允许 允许 允许 无 数据处理查看 允许 允许 允许 允许 数据处理重启 允许 允许 允许 允许 数据处理删除 允许 允许 允许 允许 数据处理终止 允许 允许 允许 允许 数据处理复制 允许 允许 允许 不允许 我的模型新增模型外壳 允许 允许 允许 不允许 我的模型新增模型版本 允许 允许 允许 不允许 我的模型模型外壳名称去重校验 允许 允许 允许 不允许 我的模型更新模型外壳(编辑名称和描述) 允许 允许 允许 不允许 我的模型模型外壳列表分页查询 允许 允许 允许 不允许 我的模型根据id查询模型外壳单条信息 允许 允许 允许 不允许 我的模型分页查询模型版本 允许 允许 允许 不允许 我的模型分页查询模型详情页 允许 允许 允许 不允许 我的模型获取所有模型外壳的所有版本号 (模型部署用) 允许 允许 允许 不允许 我的模型模型文件上传 允许 允许 允许 不允许 我的模型下载模型文件 允许 允许 允许 不允许 我的模型导出到本地 允许 允许 允许 不允许 我的模型导出到天翼云媒体存储 允许 允许 允许 不允许 我的模型模型外壳删除 允许 允许 允许 不允许 我的模型模型版本删除 允许 允许 允许 不允许 我的模型模型文件删除 允许 允许 允许 不允许 我的模型外壳获取口令 允许 允许 允许 不允许 我的模型获取口令 允许 允许 允许 不允许 我的模型根据口令获取模型名称与id 允许 允许 允许 不允许 我的模型获取可压缩的模型外壳及版本详情 允许 允许 允许 不允许 我的镜像自定义镜像查看 允许 允许 允许 不允许 我的镜像自定义镜像制作镜像 允许 允许 允许 不允许 我的镜像自定义镜像取消制作 允许 允许 允许 不允许 我的镜像自定义镜像分享 允许 允许 允许 不允许 我的镜像自定义镜像取消分享 允许 允许 允许 不允许 我的代码包分页查询 允许 允许 允许 不允许 我的代码包导入代码包 允许 允许 允许 无 我的代码包重新上传 允许 允许 允许 不允许 我的代码包删除 允许 允许 允许 不允许 我的代码包查看 允许 允许 允许 不允许 我的代码包开始训练 允许 允许 允许 不允许 我的代码包在线编码 允许 允许 允许 不允许 我的代码包下载 允许 允许 允许 不允许 训练任务新建 允许 允许 允许 无 训练任务复制 允许 允许 允许 不允许 训练任务启动 允许 允许 允许 允许 训练任务停止 允许 允许 允许 允许 训练任务删除 允许 允许 允许 允许 训练任务分页查询 允许 允许 允许 允许 训练任务查看详情 允许 允许 允许 允许 开发机新建 允许 允许 允许 无 开发机启动 允许 允许 允许 允许 开发机停止 允许 允许 允许 允许 开发机删除 允许 允许 允许 允许 开发机分页查询 允许 允许 允许 允许 开发机查看详情 允许 允许 允许 允许 开发机保存至代码包 允许 允许 允许 不允许 开发机制作镜像 允许 允许 允许 不允许 开发机开始训练 允许 允许 允许 不允许 公共服务事件 允许 允许 允许 允许 公共服务日志 允许 允许 允许 允许 公共服务监控 允许 允许 允许 允许 公共服务保存至模型管理 允许 允许 允许 不允许 模型服务分页查询 允许 允许 允许 允许 在线服务新建 允许 允许 允许 无 在线服务更新 允许 允许 允许 不允许 在线服务编辑名称 允许 允许 允许 不允许 在线服务停止 允许 允许 允许 允许 在线服务重启 允许 允许 允许 允许 在线服务修改 允许 允许 允许 不允许 在线服务删除 允许 允许 允许 允许 在线服务发布到公共服务 允许 不允许 不允许 不允许 在线服务详情页模型列表、服务监控、配置历史、运行记录、事件日志、服务日志 允许 允许 允许 允许 服务接入新建 允许 允许 允许 无 服务接入查看详情 允许 允许 允许 允许 服务接入停用 允许 允许 允许 允许 服务接入启用 允许 允许 允许 允许 服务接入删除 允许 允许 允许 允许 服务接入编辑 允许 允许 允许 不允许 调用监控导出 允许 允许 不允许 不允许 调用监控查询 允许 允许 允许 允许 模型评估新建 允许 允许 允许 无 模型评估复制 允许 允许 允许 不允许 模型评估停止 允许 允许 允许 允许 模型评估重启 允许 允许 允许 允许 模型评估删除 允许 允许 允许 允许 模型评估分页查询 允许 允许 允许 允许 模型评估详情 允许 允许 允许 允许 模型评估查看报告 允许 允许 允许 允许 模型评估导出原始评估数据 允许 允许 允许 不允许 模型评估导出全部指标 允许 允许 允许 不允许 模型评估编辑任务名称/描述 允许 允许 允许 不允许 模型精调新建 允许 允许 允许 无 模型精调重启 允许 允许 允许 允许 模型精调删除 允许 允许 允许 允许 模型精调分页查询 允许 允许 允许 允许 模型精调详情 允许 允许 允许 允许 模型精调停止 允许 允许 允许 允许 模型压缩创建 允许 允许 允许 无 模型压缩详情 允许 允许 允许 允许 模型压缩停止 允许 允许 允许 允许 模型压缩启动 允许 允许 允许 允许 模型压缩删除 允许 允许 允许 允许 模型压缩分页查询 允许 允许 允许 允许 配额新建 允许 不允许 不允许 不允许 配额编辑 允许 不允许 不允许 不允许 配额变更 允许 不允许 不允许 不允许 配额停止 允许 不允许 不允许 不允许 配额删除 允许 不允许 不允许 不允许
        来自:
        帮助文档
        训推服务
        用户指南
        管理中心
        工作空间管理
        工作空间角色权限
      • 计费类
        本小节介绍Web应用防火墙计费类常见问题。 一个域名包支持多少个二级域名? 一个域名包支持包含1个一级域名(www.baidu.com)以及这个一级域名下二级域名(如 abc.baidu.com)总计10个域名的防护。 如果超过10个,需要购买实例增加域名包数量以支持域名防护。 选择带宽是否需要和网站业务带宽匹配? 是的,Web应用防火墙最低标准带宽为200Mbps,真实业务带不能高于这个标准,如高于标准200Mbps,则需要拓展带宽包。 Web应用防火墙是付费产品吗? 天翼云Web应用防火墙作为天翼云安全业务的一个重要产品,作为付费的增值业务服务产品提供给天翼云客户,需要用户购买,收费的标准详见计费模式。 产品是否可以试用,周期为多长时间? 支持试用,周期为三个月。 线上是否支持试用订购? 不支持。 试用暂时只支持线下渠道,需联系客户经理进行试用。 我已经购买了Web应用防火墙产品,是否意味着已开启安全防护? 不是。购买成功后还需要一系列的配置才能开启安全防护,例如配置上传、下发、测试验证等操作。
        来自:
        帮助文档
        Web应用防火墙
        常见问题
        计费类
      • 修改LDAP管理员和LDAP用户密码(含OMS LDAP)
        本章主要介绍翼MapReduce的修改LDAP管理员和LDAP用户密码(含OMS LDAP)功能。 操作场景 建议管理员定期修改集群的LDAP管理员用户“cnroot,dchadoop,dccom”和LDAP用户“cnpgsearchdn,ouUsers,dchadoop,dccom”的密码,以提升系统运维安全性。 修改上述用户密码将同步修改OMS LDAP管理员或用户密码。 说明 旧版本集群升级到新版本后,LDAP管理员密码将继承旧集群的密码策略,为保证系统安全,建议集群升级后及时修改密码。 对系统的影响 修改LdapServer服务的用户密码为高危操作,需要重启KrbServer和LdapServer服务。重启KrbServer可能会导致集群中的节点短时间内出现执行id命令查询不到用户的现象,请谨慎执行。 修改LDAP用户“cnpgsearchdn,ouUsers,dchadoop,dccom”的密码后,可能会导致该用户在组件LDAP上被锁定。因此,建议修改密码后对该用户进行解锁,解锁方法请参见解锁LDAP用户和管理帐户章节。 前提条件 修改LDAP用户“cnpgsearchdn,ouUsers,dchadoop,dccom”的密码前需先确认该用户没有被锁定,在集群主管理节点上执行如下命令: 说明 oldap端口查询方法: 1. 登录FusionInsight Manager,选择“系统 > OMS > oldap > 修改配置”; 2. “Ldap服务监听端口”参数值即为oldap端口。 ldapsearch H ldaps://OMS浮动地址:OLdap端口LLL x D cnpgsearchdn,ouUsers,dchadoop,dccom W b cnpgsearchdn,ouUsers,dchadoop,dccom e ppolicy 输入LDAP用户pgsearchdn的密码,出现如下提示表示该用户被锁定,则需要解锁用户,具体请参见解锁LDAP用户和管理帐户章节。 说明 LDAP用户pgsearchdn的密码为系统随机生成,具体可在主节点的“/etc/sssd/sssd.conf”或“/etc/ldap.conf”文件中获取。 ldapbind: Invalid credentials (49); Account locked
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        安全管理
        帐户管理
        修改系统内部用户密码
        修改LDAP管理员和LDAP用户密码(含OMS LDAP)
      • 产品简介
        本节介绍应用市场的产品简介以及下载方式,以便您了解应用市场。 应用市场客户端 应用市场,是一项对云电脑内的应用进行统一下载和管理的服务,为了向天翼云电脑(公众版)用户提供安全、方便的应用获取渠道,我们提供天翼云电脑应用市场(公众版)客户端 用户可通过应用市场客户端安装、升级、卸载平台提供的各类应用。目前云电脑中已预装此客户端,如未预装,可通过云电脑工具栏的快捷入口触发安装,或前往客户端下载页面进行下载。 天翼云电脑应用市场用户协议生效,详情请参见这里。 天翼云电脑应用市场隐私政策生效,详情请参见这里。
        来自:
        帮助文档
        天翼云电脑(公众版)
        扩展功能
        应用市场
        产品简介
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response plaintext 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 plaintext 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 plaintext 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(OpenAPI)
        如何调用API
        Java调用示例
      • 通过EvalScope测试推理性能的操作指南
        3.1 关键指标解读 Throughput(吞吐量):单位时间内成功处理的请求数(req/s),反映服务负载能力,越高表明性能越优。 Latency(延迟): Mean Latency:平均响应时间,关注是否随并发升高而显著增加。 P95/P99 Latency:高百分位延迟,衡量服务稳定性(如P95表示95%请求的响应时间低于该值)。 Error Rate(错误率):超时、服务异常等失败请求占比,理想值为0%,超过1%需排查问题。 四、注意事项 1. 测试耗时 :全量测试包含多组并发和Token组合,耗时可能长达数小时,建议通过 nohup或任务调度工具执行。 2. 资源监控 :同步使用 nmon、htop等工具监控服务器CPU、内存、网络带宽,排除硬件瓶颈对测试结果的干扰。 3. API兼容性 :确保 api参数与模型服务协议一致(当前支持OpenAI格式),请求体结构需符合对应API规范。 4. 输入Token修正 :datasetinputlength设置值需比实际输入Token数少1(工具自动添加起始Token),例如预期输入1024 Token时,该参数应设为1023。 五、附录 工具文档 :EvalScope详细使用说明见官方文档。 日志示例:各测试场景的输出日志包含完整请求响应数据,可通过文本分析工具(如Grep、Excel)进行多维度对比。 本指南适用于大模型服务性能评估,旨在为技术人员提供标准化测试流程。实际操作中请根据具体环境调整参数,并结合业务负载特征设计测试用例。
        来自:
        帮助文档
        物理机 DPS
        最佳实践
        通过EvalScope测试推理性能的操作指南
      • SQL详情
        本章节介绍数据库治理中的SQL详情 概述 SQL详情页提供SQL接口维度的监控能力以及防护配置能力。通过SQL流量监控能力,可以及时定位异常SQL,并针对异常的SQL采用流量防护提供的接口流控和并发隔离能力,避免异常SQL挤占应用的资源。 使用限制 JDBC驱动支持的版本如下: 组件 支持驱动版本 MySQL JDBC 5.x/8.x 功能入口 1. 登录微服务治理控制台。 2. 在控制台左侧导航栏中选择应用治理。 3. 在应用治理页面的应用卡片页签单击目标应用卡片。 4. 在左侧导航栏选择数据库治理,在SQL详情页签下可以查看应用的不同SQL的QPS、RT和并发等详细数据。 5. 单击节点详情可以查看分节点流量。 6. 在接口概览页签,单击新增防护规则,在新增规则对话框内选择接口流控或并发隔离页签进行防护规则配置。 接口流控:流控规则会控制流量在阈值之内,拒绝阈值外的请求,可以避免异常SQL请求占用过多服务资源,保证高优先级的请求正常处理。详情请参考流量防护配置流控规则。 并发隔离:隔离规则会控制流量保持在稳态,在请求堆积的情况下保证已有请求的可用资源。详情请参考流量防护配置隔离规则。
        来自:
        帮助文档
        微服务引擎
        用户指南
        微服务治理中心
        应用治理
        数据库治理
        SQL详情
      • 流式文件处理
        本章节主要介绍如何使用函数流实现流式大文件处理。 背景与价值 Serverless Workflow由于自身可编排、有状态、持久化、可视化监控、异常处理、云服务集成等特性,适用于很多应用场景,比如: 复杂度高需要抽象的业务(订单管理,CRM 等) 业务需要自动中断 / 恢复能力,如多个任务之间需要人工干预的场景(人工审批,部署流水线等) 业务需要手动中断 / 恢复(数据备份 / 恢复等) 需要详细监控任务执行状态的场景 流式处理(日志分析,图片 / 视频处理等)当前大部分 Serverless Workflow 平台更多关注控制流程的编排,忽视了工作流中数据流的编排和高效传输,上述场景创建函数流触发器中,由于数据流相对简单,所以各大平台支持都比较好,但是对于文件转码等存在超大数据流的场景,当前各大平台没有给出很好的解决方案。FunctionGraph函数工作流针对该场景,提出了 Serverless Streaming 的流式处理方案,支持毫秒级响应文件处理。 技术原理 FunctionGraph函数工作流提出 Serverless Streaming 的流式可编排的文件处理解决方案,步骤与步骤之间通过数据流驱动,更易于用户理解。本章通过图片处理的例子解释该方案的实现机制。 如果需要驱动一个工作流执行,工作流系统需要处理两个部分: 控制流:控制工作流的步骤间流转,以及步骤对应的 Serverless 函数的执行。确保步骤与步骤之间有序执行。 数据流:控制整个工作流的数据流转,通常来说上一个步骤的输出是下一个步骤的输入,比如上述图片处理工作流中,图片压缩的结果是打水印步骤的输入数据。 在普通的服务编排中,由于需要精准控制各个服务的执行顺序,所以控制流是工作流的核心部分。然而在文件处理等流式处理场景中,对控制流的要求并不高,以上述图片处理场景举例,可以对大图片进行分块处理,图片压缩和加水印的任务不需要严格的先后顺序,图片压缩处理完一个分块可以直接流转到下一个步骤,而不需要等待图片压缩把所有分块处理完再开始加水印的任务。 基于上述理解,FunctionGraph工作流的 Serverless Streaming 方案架构设计如下图所示: 在 Serverless Streaming 的流程中,弱化控制流中步骤之间的先后执行顺序,允许异步同时执行,步骤与步骤之间的交互通过数据流驱动。其中数据流的控制通过 Stream Bridge 组件来实现。同时函数 SDK 增加流式数据返回接口,用户不需要将整个文件内容返回,而是通过 gRPC Stream 的方式将数据写入到 Stream Bridge,Stream Bridge 用来分发数据流到下一个步骤的函数 Pod 中。
        来自:
        帮助文档
        函数工作流
        用户指南
        函数流管理
        流式文件处理
      • 订购与退订
        模型适配专家服务支持自主订购和委托客户经理订购两种方式。 自主订购 实名认证 开通模型适配专家服务,需要先注册天翼云账户并确保已完成实名认证。 注册并登录天翼云官网,注册指南请参见账号中心操作指南注册天翼云账号。 未实名认证的用户请按提示完成实名认证才能开通模型适配专家服务,实名认证指南请参见账号中心操作指南实名认证。 订购流程 购买模型适配专家服务产品之前请确保您的账户余额大于本次购买服务的费用。 进入模型适配专家服务产品详情页快速了解产品,之后单击【立即订购】。 在购买页面选择订购规格,阅读并勾选服务协议,确认无误后点击【立即购买】。 支付后即算订购完成。 委托客户经理订购 联系客户经理,沟通预订购产品规格,客户经理通过内部系统下单。 退订说明 本产品订购成功后,一旦已进入服务实施阶段不允许退订,不退还费用。
        来自:
        帮助文档
        模型适配专家服务
        计费说明
        订购与退订
      • 天翼云AOne会议服务等级协议
        本文提供了天翼云AOne会议服务等级协议查看地址。 天翼云AOne会议服务等级协议,详情请参见这里。
        来自:
        帮助文档
        AOne会议
        相关协议
        天翼云AOne会议服务等级协议
      • 事件函数
        本章介绍函数工作流的事件函数的概述和优势。 概述 FunctionGraph支持事件类型函数。事件是指用于触发函数,通常为JSON格式的请求。用户作为事件源(事件的生产者),可以通过云服务平台或Cloud IDE触发函数并进行执行。在函数创建界面可以选择函数类型,事件类型的函数不受触发器类型的限制,当前FunctionGraph支持的所有类型触发器均可用于触发事件函数。 说明 1. FunctionGraph原生支持事件类型函数,在函数创建界面默认选择该类型。 2. 测试函数时在参数配置界面输入用户指定的事件JSON即可完成函数触发。 3. 用户也可以通过FunctionGraph支持的触发器进行事件函数触发。 优势 单机编程体验,简单易用 事件类型函数可以在FunctionGraph函数界面或Cloud IDE界面进行函数编辑或代码包上传,一键式完成函数云上部署,用户无需关心并处理函数的并发、故障恢复等问题。 高性能极速运行时 事件函数提供毫秒级函数启动、函数扩容、函数调用,秒级故障中断检测及秒级故障恢复。 便捷完备的工具链 提供完备的日志、调用链、debug及监控能力,支撑开发者“三步”上线函数应用。 限制 事件函数受限于事件格式(事件源),开发者在开发过程中需要遵循函数平台的函数开发规则。
        来自:
        帮助文档
        函数工作流
        产品简介
        函数类型
        事件函数
      • 接入日志数据
        本节介绍如何接入数据并查看日志存储位置。 操作场景 态势感知(专业版)支持一键接入多种云产品的日志数据。接入后,可以统一管理日志信息,以及检索并分析所有收集到的日志。 说明 建议将态势感知(专业版)管理的资产以及资产的告警、基线检查结果、漏洞数据、日志数据接入同一个工作空间,便于统一运营,进行安全分析关联。 约束与限制 日志接入操作成功后,日志数据订阅预计在十分钟内生效。 态势感知(专业版)支持一键接入CFW日志数据,若接入的是新购买的CFW的日志数据,由于日志上报存在一定的延迟,如果您当天在态势感知(专业版)执行了接入CFW日志操作,则将会隔天才能在态势感知(专业版)中查看到上报的CFW日志数据。 接入云服务日志 1. 登录管理控制台。 2. 单击页面左上方的,选择“安全 > 态势感知(专业版)”,进入态势感知(专业版)管理页面。 3. 在左侧导航栏选择“工作空间 > 空间管理”,并在工作空间列表中,单击目标工作空间名称,进入目标工作空间管理页面。 4. 在左侧导航栏选择“日志审计 > 云服务接入”,进入云服务日志接入页面。 5. 在云服务日志接入页面,配置日志接入。请根据当前region已开通云服务按需进行接入。 6. 一键接入多个云服务产品的日志 ,在云服务日志接入页面,单击“一键接入”按钮,右侧弹出“一键接入”配置页面。在一键接入配置页面,下拉选择数据源区域,下拉勾选需要接入的云服务日志。配置完成后,单击右下角“确定”,完成设置。 7. 云服务日志接入也支持设置单个云产品的日志接入。在云服务接入管理页面,单击云服务产品所在行操作列的“设置”,右侧弹出日志接入设置配置页面。 8. 在设置页面,根据需要配置接入开关。 参数名称 参数说明 日志类型 日志的类型。 日志接入 设置日志接入开关。按钮打开表示日志接入态势感知(专业版)。 自动转告警 在“自动转告警”列,单击,开启后,当接入的云服务日志满足告警触发条件时,自动转为告警,并且在“告警管理”页面中进行展示。 生命周期 日志接入后的存储时长。 日志状态 日志接入的状态。 已接入:日志已接入且执行成功。 未接入:日志未接入。 接入失败:日志接入且执行失败。 最近活跃时间 最近日志接入时间,即活跃时间。 操作 单击“编辑”,可设置该日志类型的生命周期,单位天。生命周期指的是日志接入后的存储时长。 9. 云服务日志接入配置完成后,在“日志审计> 云服务接入”页面可查看云服务产品的日志接入状态。 说明 操作成功后,日志数据订阅预计在十分钟内生效。接入完成后,将创建默认数据空间和管道。
        来自:
        帮助文档
        态势感知(专业版)(新版)
        用户指南
        日志审计
        云服务接入
        接入日志数据
      • 用量分析
        本文介绍用量分析可支持的维度和查询方法 查询范围说明 通过CDN控制台查询数据时,不同时间粒度的单次查询的最长时间跨度和可查询历史数据的时间范围存在区别,详情请见如下列表。 支持查询的时间粒度 时间粒度 单次查询的最长时间跨度 可查询历史数据的时间范围 数据延迟 1分钟 3小时 7天 5分钟 5分钟 31天 1年 20分钟 1小时 31天 1年 20分钟 1天 31天 1年 20分钟 单次查询的最长时间跨度:是指在可查询范围内,单次查询时可支持的最长时间跨度。以5分钟为例,最长时间跨度是31天,即单次最长仅支持查询31天内的数据。查询起止日期可以是一年里面的任意连续的日期,最长跨度为31天。 可查询历史数据的时间范围:是指从当日往前推,可支持查询历史数据的时间范围。以1分钟为例,从当日往前推,7天内的数据可支持查询,超过7天的数据不支持查询。 注意 CDN控制台仅在单次查询时间跨度≥4天的基础上(即页面【时间】过滤条件选择【近7天】或【近30天】或【自定义】的时间跨度≥4天),支持时间粒度为1天的带宽流量、回源统计、请求数、命中率、状态码用量查询。 查询维度说明 用量分析模块,支持客户查询带宽流量(流量/带宽)、回源统计(回源流量/回源带宽)、请求数(边缘/回源)、命中率(流量/请求)、状态码、回源状态码、PV/UV、地区运营商等维度的统计数据,并能导出CSV文件。
        来自:
        帮助文档
        CDN加速
        用户指南
        数据分析
        用量分析
      • GPU型
        天翼云GPU型物理机具有卓越的处理能力和超强的计算能力,提供GPU算力,满足用户在科学计算、深度学习、AI推理等业务需求。 规格名称 CPU 内存(GB) 处理器 处理器主频(GHz) GPU显卡 GPU显存(GB) 本地磁盘 内网带宽(Gbps) RDMA(Gbps) 是否支持挂载云硬盘 physical.pi2.2xlarge1 2路24核 512 Intel 6248R 3.0 6GPU T4 96 系统盘:2 480GB(SSD) 225 无 不支持 physical.pi7.2xlarge1 2路32核 768 Intel 8378A 3.0 4GPU A10 96 系统盘:2 480GB(SSD)数据盘:21920GB(SSD) 50 无 不支持 physical.300ipro.2xlarge1 2路48核 768 Kunpeng 920 5250 2.6 4300I Pro 96 系统盘:2 480GB(SSD)数据盘:23200GB(NVMeSSD) 50 无 不支持 physical.300ipro.xlarge1.sh 2路48核 512 Kunpeng 920 5250 2.6 4300I Pro 96 系统盘:2 480GB(SSD)数据盘:23200GB(NVMeSSD) 50 无 不支持 physical.acas910b.2xlarge11 4路48核 1536 Kunpeng 920 5250 2.6 8Huawei Ascend 910B(风冷) 512 系统盘:2 480GB(SSD)数据盘:23200GB(NVMeSSD) 225 1600 不支持 physical.lcas910b.2xlarge11 4路48核 1536 Kunpeng 920 5250 2.6 8Huawei Ascend 910B(液冷) 512 系统盘:2 480GB(SSD)数据盘:23200GB(NVMeSSD) 50 1600 不支持
        来自:
        帮助文档
        物理机 DPS
        产品规格
        GPU型
      • 欠费说明
        当您天翼云账号的可用额度(费用中心总览)不足以抵扣待结算账单时,您的账号将会立即进入欠费状态;事件总线EventBridge服务将被冻结,不可继续使用。您可以及时为业务续费或清理不再使用的总线资源,确保服务正常可用。 欠费通知 若您的账号发生欠费,系统会以邮件或短信的形式提醒您。请留意来自天翼云的提醒邮件、短信,避免影响业务正常使用。 欠费影响 当您的天翼云账号发生欠费,事件总线平台将会按照下列策略处理: 欠费时间未超过15天 将冻结您的事件总线服务,无法新建事件总线等相关资源 当欠费超过15天 事件总线服务将进行注销,相关资源如事件总线、事件源、事件规则与事件流等将删除且不可恢复 欠费恢复 请在收到欠费通知后,登录天翼云官网费用中心进行充值;稍后事件总线服务将自动解冻,为您恢复服务。
        来自:
        帮助文档
        事件总线
        计费说明
        欠费说明
      • 配置集群静态资源
        本章节主要介绍翼MapReduce的配置集群静态资源操作。 操作场景 当需要控制集群服务可以使用节点资源的情况,或者控制集群服务在不同时间段节点可用配额的CPU与I/O资源时,管理员可以在FusionInsight Manager调整资源基数,并自定义资源配置组。 对系统的影响 配置静态服务池后,受影响的服务的“配置状态”将显示为“配置过期”,需要重启服务,重启期间服务不可用。 配置静态服务池后,各服务及角色实例使用的最大资源将不能超过限制。 操作步骤 修改资源调整基数 1.在FusionInsight Manager界面,选择“集群 > 待操作集群的名称 > 静态服务池”。 2.单击右上角“配置”,进入静态资源池配置向导。 3.在“系统资源调整基数”分别修改参数“CPU(%)”和“Memory(%)”。 修改“系统资源调整基数”将限制服务能够使用节点的最大物理CPU和内存资源百分比。如果多个服务部署在同一节点,则所有服务使用的最大物理资源百分比不能超过此参数值。 4.单击“下一步”。 需要重新修改参数,可单击“上一步”返回。 修改资源池默认“default”配置组 5.单击“default”,在“权重配置”表格中各服务对应的“CPU LIMIT(%)”、“CPU SHARE(%)”、“I/O(%)”和“Memory(%)”填写各服务的资源使用百分比数量。 说明 所有服务使用的“CPU LIMIT(%)”和 “CPU SHARE(%)”资源配置总和可以大于100%。 所有服务使用的“I/O(%)”资源配置总和可以大于100%,不能为0。 所有服务使用的“Memory(%)”资源配置总和可以小于或等于100%,也可以大于100%。 “Memory(%)”不支持动态生效,仅在“default”配置组中可以修改。 “CPU LIMIT(%)”用于配置服务可使用的CPU核数与节点可分配的CPU核数占比。 “CPU SHARE(%)”用于配置服务在与其他服务使用同一个CPU核的时间占比,即多个服务在使用同一个CPU核发生争抢时的时间占比。 6.单击“根据权重配置生成详细配置”,FusionInsight Manager将根据集群硬件资源与分配情况,生成资源池实际参数配置值。 7.单击“确定”。 在弹出窗口单击“确定”,确认保存配置。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        集群管理
        管理集群
        静态服务池
        配置集群静态资源
      • 恢复Hive业务数据
        本章主要介绍翼MapReduce的恢复Hive业务数据功能。 操作场景 在用户意外修改、删除或需要找回数据时,系统管理员对Hive进行重大操作(如升级、重大数据调整等)后,系统数据出现异常或未达到预期结果,模块全部故障无法使用,或者迁移数据到新集群的场景中,需要对Hive进行恢复数据操作。 系统管理员可以通过FusionInsight Manager创建恢复Hive任务并恢复数据。只支持创建任务手动恢复数据。 Hive备份恢复功能不支持识别用户的Hive表、索引、视图等对象在业务和结构上存在的关联关系。用户在执行备份恢复任务时,需要根据业务场景管理统一的恢复点,防止影响业务正常运行。 须知 只支持进行数据备份时的系统版本与当前系统版本一致时的数据恢复。 当业务正常时需要恢复数据,建议手动备份最新管理数据后,再执行恢复数据操作。否则会丢失从备份时刻到恢复时刻之间的Hive数据。 对系统的影响 恢复过程中会停止用户认证,用户无法开始新的连接。 数据恢复后,会丢失从备份时刻到恢复时刻之间的数据。 数据恢复后,需要重新启动Hive的上层应用。 前提条件 如果需要从远端HDFS恢复数据,需要准备备集群。如果主集群部署为安全模式,且主备集群不是由同一个FusionInsight Manager管理,则必须配置系统互信,请参见配置跨Manager集群互信。如果主集群部署为普通模式,则不需要配置互信。 主备集群必须已配置跨集群拷贝,请参见启用集群间拷贝功能。 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。 规划好恢复数据保存表的数据库,数据表在HDFS的保存位置,以及访问恢复数据的用户清单。 检查Hive备份文件保存路径。 停止Hive的上层应用。 登录FusionInsight Manager,请参见登录管理系统。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        备份恢复管理
        恢复数据
        恢复Hive业务数据
      • 配置私有属性
        本章节主要介绍翼MapReduce的配置私有属性操作。 操作场景 admin用户或绑定Manageradministrator角色的管理员用户,可以在FusionInsight Manager配置私有属性功能开关,用于支持用户(集群中所有业务用户)设置或取消自己的私有(Independent)属性。 开启私有属性开关后,需要业务用户登录后设置Independent属性,完成用户私有属性配置。 限制约束 管理员不能设置或取消业务用户的Independent属性。 管理员不能获取私有用户的认证凭据。 前提条件 已获取要求权限的管理员用户和密码。 操作步骤 配置私有属性开关 1. 以admin用户或绑定Manageradministrator角色的用户登录FusionInsight Manager。 2. 选择“系统 > 权限 > 安全策略 > 配置Independent”。 3. 打开或关闭Independent属性,根据提示输入密码,单击“确认”完成身份验证。 4. 身份验证通过后,等待修改OMS配置完成,单击“完成”结束操作。 说明 关闭Independent属性功能后: 已拥有这个属性的业务用户可以在右上角用户名下取消Independent属性,取消后无法重新设置。取消后已创建的私有表继续保持私有属性,取消后无法继续创建私有表。 没有这个属性的业务用户无法在右上角用户名下进行设置和取消操作。 配置用户私有属性 5. 以业务用户登录FusionInsight Manager。 须知 设置Independent属性后,管理员不能初始化私有用户(业务用户设置了Independent属性后,即为私有用户)的密码;如果忘记此用户密码,密码将无法找回。 admin用户无法设置Independent属性。 6. 移动鼠标到界面右上角的用户名。 7. 在弹出的菜单栏中单击“设置Independent”或“取消Independent”。 说明 私有属性功能开关已开启,业务用户当前已设置私有属性时,菜单栏显示“取消Independent”。 私有属性功能开关已开启,业务用户当前已取消私有属性时,菜单栏显示“设置Independent”。 私有属性功能开关已关闭,业务用户当前已设置私有属性时,菜单栏显示“取消Independent”。 私有属性功能开关已关闭,业务用户当前已取消私有属性时,菜单栏不显示。 8. 根据界面提示,输入密码,单击“确定”完成身份验证。 9. 身份验证通过后,在确认对话框中单击“确定”。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        系统设置
        权限设置
        安全策略
        配置私有属性
      • 配置Syslog北向参数
        本章节主要介绍翼MapReduce的配置Syslog北向参数操作。 操作场景 如果用户需要在统一的告警平台查看集群的告警和事件,管理员可以在FusionInsight Manager使用Syslog协议将相关数据上报到告警平台。 须知 Syslog协议未做加密,传输数据容易被窃取,存在安全风险。 操作步骤 1. 登录FusionInsight Manager。 2. 选择“系统 > 对接 > Syslog”。 3. 单击“Syslog服务”右侧的开关。 “Syslog服务”默认为不启用,开关显示为表示启用。 4. 根据下表所示的说明填写北向参数。 Syslog对接参数 参数区域 参数名称 参数说明 Syslog协议 服务IP模式 设置对接服务器IP地址模式,可选择“IPV4”或者“IPV6”。 Syslog协议 服务IP 设置对接服务器IP地址。 Syslog协议 服务端口 设置对接端口。 Syslog协议 协议 设置协议类型,可选值: l TCP l UDP Syslog协议 安全级别 设置上报消息的严重程度,取值范围: l Emergency l Alert l Critical l Error l Warning l Notice l Informational(默认值) l Debug 说明 “安全级别”和“Facility”共同组成发出消息的优先级(Priority )。 优先级(Priority ) “Facility” × 8 +“安全级别” “安全级别”和“Facility”各项对应的数值请参考下表:“安全级别”和“Facility”字段数值编码 。 Syslog协议 Facility 设置产生日志的模块。可选项参考下表:“安全级别”和“Facility”字段数值编码[](file:///D:/%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%E5%A4%B9/1%E3%80%81%E7%BF%BCMapReduce%EF%BC%88MRS%EF%BC%89/%E5%8D%8E%E4%B8%BA%E6%8F%90%E4%BE%9B%E6%96%87%E6%A1%A3MRS/%E5%A4%A9%E7%BF%BC%E5%9C%A8%E7%94%A8%E6%96%87%E6%A1%A323.6.26%EF%BC%88%E5%B7%B2%E4%BF%AE%E6%94%B9%EF%BC%89/%EF%BC%88%E5%B7%B2%E4%BF%AE%E6%94%B9%EF%BC%89%E7%BF%BCMapReduce%E6%9C%8D%E5%8A%A1%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97.docx
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        系统设置
        对接设置
        配置Syslog北向参数
      • DNS设置
        本节介绍如何对DNS服务进行配置。 操作场景 用户配置本地DNS服务。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 您已经完成智能网关实例的创建。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本文我们选择华东1。 3. 依次选择“网络”,单击“天翼云SDWAN”;进入天翼云SDWAN总览页面。 4. 选择“智能网关”,单击目标智能网关实例的名称。 5. 单击“设备管理”。 6. 开启“DNS代理”按钮,可编辑DNS地址。 7. 单击“√”,可保存DNS配置。
        来自:
        帮助文档
        天翼云SD-WAN
        智能网关通用配置
        DNS设置
      • 天翼云函数工作流服务等级协议
        本文主要介绍天翼云函数工作流服务等级协议。 天翼云函数工作流服务等级协议详情请参见这里
        来自:
        帮助文档
        函数工作流
        相关协议
        天翼云函数工作流服务等级协议
      • 天翼云CDN服务协议
        本文介绍视频直播服务协议。 视频直播产品采用《天翼云CDN服务协议》,详情请参见天翼云CDN服务协议。
        来自:
        帮助文档
        视频直播
        相关协议
        天翼云CDN服务协议
      • 欠费说明
        本文介绍CDN加速欠费产生后的处理规则。 当客户的天翼云账户中,没有余额或产生欠费的情况下,天翼云会关停客户的CDN加速服务,并通过短信通知客户充值。 关停服务 关停客户的CDN加速服务,即天翼云CDN会立即将加速域名的CNAME入口解析至客户源站地址,控制台上域名状态变更为“已停止”,1天后将加速域名的CNAME解析至不可用地址。 恢复服务 对域名进行停用操作后,CDN节点会立即删除配置,但仍会在系统数据库中保留原来的配置记录,客户可通过在线充值结清欠款,并对域名进行【启用】操作,CDN加速产品即可恢复服务。操作步骤如下: 1. 登录CDN控制台。 2. 单击左侧导航栏【域名管理】【域名列表】。 3. 在【域名列表】页面,找到【已停止】的域名,单击【操作】列的【启用】。 4. 对弹出的【启用确认】,单击【确认启用】。 预警设置 为避免欠费情况的产生,可通过对客户在天翼云官网账户的可用额度进行预警设置,当用户的余额低于阈值,系统会发送短信提醒。 操作步骤: 1. 登录天翼云账户。 2. 单击右上角。 3. 单击【费用中心】。 4. 打开【可用额度预警】开关,修改预警阈值,当用户的余额低于阈值,系统会发送短信提醒。
        来自:
        帮助文档
        CDN加速
        计费说明
        欠费说明
      • 添加设备
        本节将为您介绍如何给智能网关实例添加设备。 操作场景 通过添加设备,您可以将自己已有的网关设备与智能网关实例进行绑定,绑定完成后可在智能网关管理控制台对您的设备进行配置管理。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 您已经完成智能网关硬件实例的创建,且未购买设备。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本节我们选择华东1。 3. 依次选择“网络”,单击“天翼云SDWAN”,进入天翼云SDWAN总览页面。 4. 单击“智能网关”,在智能网关列表页面,单击目标智能网关“操作”列的“添加设备”。 5. 在“添加设备”界面,选择并填写您设备的设备型号、使用方式、SN、设备地址等信息。 6. 点击“确定”按钮。
        来自:
        帮助文档
        天翼云SD-WAN
        智能网关(硬件版)
        设备管理
        添加设备
      • 设置OSPF路由主备
        本节为您介绍设置OSPF路由主备的操作场景、前提条件和操作步骤。 操作场景 用户建立两个智能网关的OSPF路由主备关系,以增强服务可用性。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 主备智能网关均为单机接入方式且在线。 主备智能网关均已启用OSPF路由。 主备智能网关接入同一个PoP且没有与其他设备建立主备关系。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本节我们选择华东1。 3. 依次选择“网络”,单击“天翼云SDWAN”,进入天翼云SDWAN总览页面。 4. 选择“OSPF路由备份”,单击“创建主备关系”。 5. 根据页面提示,添加需要建立主备关系的两个设备。主设备优先级默认为1,备设备优先级默认为2。 6. 单击“确定”,完成建立OSPF路由备份。
        来自:
        帮助文档
        天翼云SD-WAN
        智能网关(硬件版)
        路由管理
        设置OSPF路由主备
      • 使用延迟绑定的存储类实现跨AZ调度
        本节介绍了云容器引擎的最佳实践:使用延迟绑定的存储类实现跨AZ调度。 天翼云提供多种存储类型,如云硬盘、海量文件、弹性文件等。多数存储创建于特定可用区,若从其他可用区访问,部分存储类型将无法访问,部分虽可访问但存在性能损耗。尤其对于云硬盘或并行文件等对可用区要求严格的存储产品,若节点与存储的可用区不匹配,将导致存储无法正常挂载。为保障可用性与性能,建议多可用区业务采用延迟绑定策略,尽可能使存储与容器应用处于同一可用区。 注意 若工作负载的多个副本分布在多个可用区,且均使用同一支持延迟绑定及多机只读的PVC,则存储将基于首个被调度Pod所在的可用区进行挂载。 名词解释 延迟绑定(WaitForFirstConsumer)是存储类绑定策略的一种。选择该策略后,使用此存储类创建的PVC不会立即执行动态分配操作,而是等待有工作负载使用该PVC且Pod完成调度后,才触发动态分配流程。 Pod调度完成后,K8S会记录其所在节点的可用区信息。动态分配时,系统将根据Pod所在可用区为PVC分配存储并构建PV。 使用方法 创建一个新的存储类时,需根据实际需求选择存储产品并填写相关参数。在“绑定策略”一栏中,请选择延迟绑定(WaitForFirstConsumer)。 创建持久卷申明时,选择这个新的存储类,可以看到持久卷申明,状态会一直处于等待中,事件也是等待动态分配的状态。此时需要新建一个工作负载使用该PVC。 一段时间后可见,持久卷申请已成功绑定,无状态工作负载启动正常,云盘正常挂载。通过存储控制台查询可确认存储所在可用区与工作负载的可用区保持一致。
        来自:
      • 使用Elasticsearch搜索数据
        本文通过示范例子,向您介绍天翼云云搜索服务Elasticsearch实例可以提供的检索和分析服务。 这里,我们以一个示范的例子,向您简单介绍天翼云Elasticsearch实例可以提供的检索和分析服务,包括创建索引、数据导入、数据搜索、筛选排序等。 操作步骤 创建实例 1. 在“云搜索服务”产品页,单击“立即开通”。 2. 在云搜索服务实例创建页面选择实例类型为Elasticsearch、订购周期、当前区域(即资源池)、可用区、填写实例名称、节点规格等基础配置信息后,按页面提示并根据需要进行配置,然后点击下一步。 3. 按确认信息页面提示,勾选相关协议,完成订单付款,即可完成订购,等待资源开通完成,对应实例处于“运行中”状态,即为成功。 导入数据 Elasticsearch实例支持多种导入方式,常用的业务场景是把Logstash作为源接入搜索实例,在此,为了演示方便,我们以商品检索为例子,从Kibana的DevTools控制台里调用Rest API导入数据。 注意:Kibana需要预先链接公网使用,具体配置方法请参考实例公网访问。 1. 先在Kibana的左边栏里选择“Dev Tools“,进入控制台,其中左边屏幕为命令行调用API栏,右边屏幕为调用结果返回栏。 2. 首先,在console界面,我们创建索引productsfruits来定义存储数据的Schema。 具体语句如下: plaintext PUT /productsfruits { "mappings": { "properties": { "name": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignoreabove": 256 } } }, "price": { "type": "long" } } }, "settings": { "numberofshards": "1", "numberofreplicas": "0" } } 3. 然后在console里执行bulk插入语句,来将数据导入到索引里。 返回结果里errors为false,表示数据全部导入,具体语句如下: plaintext PUT /productsfruits/bulk {"index":{"id":1}} {"name": "苹果", "price": 10} {"index":{"id":2}} {"name": "香蕉", "price": 20} {"index":{"id":3}} {"name": "菠萝", "price": 15} {"index":{"id":4}} {"name": "火龙果", "price": 25}
        来自:
        帮助文档
        云搜索服务
        快速入门
        使用Elasticsearch搜索数据
      • 使用OpenSearch搜索数据
        本文通过示范例子,向您介绍天翼云云搜索服务OpenSearch实例可以提供的检索和分析服务。 这里,我们以几个示范的例子,向您简单介绍天翼云OpenSearch实例可以提供的检索和分析服务,包括创建索引、数据导入、数据搜索、筛选排序等。 操作步骤 创建实例 1. 在【云搜索服务】产品页,单击【立即开通】。 2. 在云搜索服务实例创建页面选择计费模式、订购周期、当前区域(即资源池)、可用区、实例类型、实例版本、实例名称、节点规格等基础配置信息后,按页面提示并根据需要进行配置,然后点击下一步。 3. 按确认信息页面提示,勾选相关协议,完成订单付款,即可完成订购,等待资源开通完成,对应实例处于“运行中”状态,即为成功。 导入数据 OpenSearch实例支持多种导入方式,常用的业务场景是把Logstash作为源接入搜索实例,在此,为了演示方便,我们以商品检索为例子,选择从Dashboards的DevTools控制台里调用Rest API导入数据。 注意:Dashboards需要预先链接公网使用,具体配置方法请参考实例公网访问。 1. 先在Dashboards的左边栏里选择“DevTools”,进入控制台。其中左边屏幕为命令行调用API栏,右边屏幕为调用结果返回栏。 2. 首先,在console界面,我们创建索引productsfruits来定义存储数据的Schema。 具体语句如下: plaintext PUT /productsfruits { "mappings": { "properties": { "name": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignoreabove": 256 } } }, "price": { "type": "long" } } }, "settings": { "numberofshards": "1", "numberofreplicas": "0" } } 3. 然后我们,在console里执行bulk插入语句,来将数据导入到索引里。 返回结果里errors为false,表示数据全部导入,具体语句如下: plaintext PUT /productsfruits/bulk {"index":{"id":1}} {"name": "苹果", "price": 10} {"index":{"id":2}} {"name": "香蕉", "price": 20} {"index":{"id":3}} {"name": "菠萝", "price": 15} {"index":{"id":4}} {"name": "火龙果", "price": 25}
        来自:
        帮助文档
        云搜索服务
        快速入门
        使用OpenSearch搜索数据
      • 版本说明书
        本页简要介绍分布式数据库V1.1.0版本更新说明。 版本说明 V1.1.0版本说明 组件名称 版本号 发布时间 TeleDBXCore 1.1 2020年 03 月 新增和优化特性: 1. 支持实例监控资源指标采集,包括CPU使用率、内存使用量、内存使用率、IO操作数、IO吞吐量、IO利用率、磁盘空闲时间、磁盘空闲率、磁盘已用空间、磁盘使用率、网络吞吐量和wal日志空间。 2. 支持查看实例监控指标数据。 3. 支持内核引擎性能指标采集。 4. 支持查看性能指标。 5. 支持对实例的语句执行状态进行监控,主要是针对当前的非系统连接执行的语句进行展示。 6. 支持数据库实例的锁分析,支持在页面上展示实例当前存在的锁以及导致锁产生的SQL语句。 7. 支持采集慢语句。 8. 支持查看慢语句信息包括:SQL语句、连接的数据库、执行次数、总耗时、平均耗时、最大耗时以及最小耗时等。 9. 支持错误日志采集。 10. 支持错误日志查询。 11. 支持慢日志采集。 12. 支持慢日志查询。 13. 支持查看仪表盘数据,包括节点IP端口、连接状态、节点角色、节点CPU使用率、节点内存使用大小、节点所在机器磁盘容量、磁盘读取速度、磁盘写入速度、磁盘IO利用率、主从同步时延、节点连接数、节点tps和节点qps。 14. 支持查看参数组详情,包括参数组内所有参数的参数名称、当前参数值、修改是否需要重启、参数可修改范围以及参数描述等信息。 15. 支持两个参数组之间参数项的比较,列出两个参数组中不同的参数项。仅可比较相同PG版本的参数组。 16. 支持复制参数组、重置参数组和删除参数组。 17. 支持将参数组应用到指定实例。 18. 支持查看参数组历史记录。 19. 支持记录数据库实例主从切换历史的功能,包括手动切换以及自动切换的场景。 20. 支持增加对数据库实例告警。 21. 新增实例运维操作,包括查杀空闲连接、空闲连接免杀白名单和清理在线表。 22. 引入开源PG12 修改功能 因部分安全漏洞扫描工具是基于软件版本号作为基线识别,您可能会在本版本扫描到如下安全漏洞,经过分析相关安全漏洞均已修复。 CVE20153165 CVE20072138 CVE20074772 CVE20160773 CVE20140062 CVE20050227 CVE20140063 CVE20140061 CVE20155288 CVE20150241 CVE20150243 CVE20165424 CVE20165423 CVE20155289 CVE20140067 CVE20140065 CVE20177548 CVE20050245 CVE20070555 CVE20140060 CVE20177484 CVE20160766 CVE20140064 CVE20150244 CVE20148161 CVE20153167 CVE20153166 CVE20076601 CVE20100733 CVE20100442 CVE20112483 修复缺陷 1. primaryconninfo在线无法修改。 2. 修复interval测试错误。 3. 外关联语法 (+) sublink 二次扫描 subselect重复解析bug。 4. psql 也支持 q' 语法。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V1.1.0版本产品文档
        版本说明书
      • 备份
        本文主要介绍SQL Server实例备份服务的价格。 天翼云SQL Server提供了备份服务,其价格如下表: 产品名称 标准价格(元/GB /月) 按需(元/GB/小时) 普通IO 0.30 0.0005 高IO 0.40 0.0009 超高IO 1.20 0.0017 对象存储 不支持包月 0.000139 对象存储流量 不支持包月 功能公测阶段,对象存储流量免费。 注意 包年预付费优惠政策:1年85折,2年7折,3年、4年、5年均享受5折优惠。 云硬盘的备份类型不享受免费额度,因此备份类型更推荐选择对象存储。 说明 目前对象存储的备份类型赠送和开通的存储空间同等大小的免费额度,在免费额度内的备份将不收取任何费用。超出免费额度外的备份将按照对象存储收费标准进行收费,每小时的备份费用 ( 备份总大小 免费备份额度 ) x 备份单价。 举例:如用户开通包周期2个月,存储空间100G的实例,那么在两个月内,备份空间不超过100G,则不会收取额外的备份费用。但如果备份超过100G,总备份为150G,则超出的50G按照0.00139元/GB/小时来收取费用。 此外用户的备份文件会根据备份策略进行保留,备份策略保留周期内的备份文件占用的对象存储容量按照以上规则进行收费。
        来自:
        帮助文档
        关系数据库SQL Server版
        计费说明
        产品资费
        备份
      • 1
      • ...
      • 194
      • 195
      • 196
      • 197
      • 198
      • ...
      • 553
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

      爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券

      安全隔离版OpenClaw

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

      聚力AI赋能 天翼云大模型专项

      大模型特惠专区·Token Plan 轻享包低至9.9元起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      企业出海解决方案

      助力您的业务扬帆出海,通达全球!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

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

      云上钜惠

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

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      GPU云主机

      多活容灾服务 MDR

      天翼云CTyunOS系统

      AI Store

      公共算力服务

      应用托管

      智算一体机

      推荐文档

      关于天翼云

      云课堂 第五课:CC攻击介绍及如何防御

      云课堂 第十六课:天翼云语音听写AI云服务测试Demo(Pyth

      如何创建RDS数据库

      产品类

      成员权限

      PostgreSQL

      • 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号