爆款云主机低至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
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
Token服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • 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云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      容器实例_相关内容
      • Windows云主机搭建了FTP,通过公网无法访问
        FTP防火墙故障的解决步骤 1. 在开始中搜索IIS,在Internet信息服务(IIS)管理器界面中找到FTP防火墙设置。 图5 打开FTP站点的防火墙 2. 双击FTP防火墙支持,设置数据通道端口范围(可指定的有效端口范围是102565535),防火墙的外部IP地址中输入该云主机的公网IP地址,设置完成后点击右侧的应用。 图6 调整FTP防火墙中的数据通道端口范围 3. 重启云主机使FTP防火墙配置生效。 云主机设置安全组及防火墙 在云主机内搭建好FTP站点后,需要在云主机安全组的入方向添加一条放行FTP端口的规则,请按以下步骤进行操作。 1. 进入弹性云主机的管理控制台页面,进入云主机控制台,在顶端菜单栏处选择云主机所在的地理区域,在云主机列表中找到内部搭建了FTP的云主机,点击云主机的名称进入详情页面。 图7 打开云主机的安全组 2. 在云主机详情页面,选择“安全组”,点击云主机当前的安全组,确定安全组入口规则中有TCP协议的开放端口中涵盖了本文中“FTP防火墙故障的解决步骤”中步骤2指定的端口范围。如无请按本文中“云主机安全组规则添加的解决步骤”进行处理。
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        文件上传/数据传输
        Windows云主机搭建了FTP,通过公网无法访问
      • 添加监听器
        本文主要介绍如何添加监听器。 操作场景 负载均衡监听器通过指定的协议和端口进行流量转发。同时监听器将根据健康检查的配置自动检查其后端主机的运行状况。如果发现某台主机运行不正常,则会停止向该主机发送流量,并重新将流量发送至正常运行的主机。 创建监听器 1. 选择“服务列表 > 网络 > 弹性负载均衡”。 2. 在“负载均衡器”界面,单击需要添加监听器的负载均衡名称“elb01”。 3. 切换到“监听器”页签,单击“添加监听器”。 4. 配置监听器,单击“下一步”。 名称:监听器名称,示例为“listenerHTTP”。 前端协议/端口:负载分发的协议和端口,示例为“HTTP/80”。 5. 配置后端主机组和开启健康检查,单击“完成”。 创建后端主机组 1. 名称:后端主机组名称,示例为“servergroupELB”。 2. 分配策略类型:负载均衡采用的算法,示例为“加权轮询算法”。 修改健康检查配置 1. 协议:前端协议为TCP、HTTP或者HTTPS时,健康检查支持TCP和HTTP协议,设置后不可修改,示例为“HTTP”。 2. 域名:健康检查的请求域名。示例为“www.example.com”。 3. 端口:健康检查端口号,示例为“80”。 4. 未配置健康检查端口时,默认使用后端主机端口进行健康检查。配置后,使用配置的健康检查端口进行健康检查。 5. 在新添加的监听器下,单击后端主机组页签的“添加”。 6. 勾选需要添加的主机,设置业务端口,单击“完成”。 主机勾选“ECS01”和“ECS02”。 业务端口:业务所使用的端口,示例为“80”。
        来自:
        帮助文档
        弹性负载均衡 ELB
        快速入门
        添加监听器
      • 快速导入镜像文件
        操作场景 本节指导您基于Linux操作系统环境完成镜像文件快速导入,推荐使用云平台的HCE云服务器作为转换镜像格式和生成位表文件的环境。 Linux操作系统环境下,建议使用qemuimgctc工具进行镜像格式转换。 前提条件 1. 已完成镜像文件优化,详细操作请参考优化私有镜像(Windows)或优化私有镜像(Linux);同时需要确保镜像文件符合Linux 操作系统的镜像文件限制中的限制条件。 说明 请根据镜像文件的操作系统类型来选择所参考内容。 2. 已在管理控制台创建HCE操作系统的弹性云服务器,并确保云服务器已绑定弹性公网IP。 3. 已在管理控制台创建OBS桶。 操作步骤 1. 上传镜像文件至云服务器。 1. 本地主机为Linux系统: 通过scp命令将镜像文件上传至云服务器。以将“image01.qcow2”文件上传至云服务器的“/usr/”目录下为例。 scp /var/image01.qcow2 root@xxx.xxx.xx.xxx:/usr/ 其中,xxx.xxx.xx.xxx为云服务器的弹性公网IP。 2. 本地主机为Windows系统: 使用文件传输工具(例如WinSCP)将镜像文件上传至云服务器。 2. 获取镜像转换工具(qemuimgctc.rar)和位表文件生成工具(CreateMF.zip),并上传至云服务器,然后解压工具包。 3. 使用qemuimgctc工具转换镜像格式。 1. 进入qemuimgctc存放目录,以存放在“/usr/qemuimgctc”为例: cd /usr/qemuimgctc 2. 执行以下命令修改权限: chmod +x qemuimgctc 3. 执行qemuimgctc命令将镜像文件转为zvhd2或raw格式(推荐转为zvhd2格式)。 qemuimgctc命令格式: ./qemuimgctc convert p O {目标镜像格式} {待转换镜像文件} {目标镜像文件} 以将“image01.qcow2”格式文件转换成“image01.zvhd2”格式为例: ./qemuimgctc convert p O zvhd2 image01.qcow2 image01.zvhd2 若转换后为zvhd2格式文件,请执行步骤5。 若转换后为raw格式文件,请使用CreateMF.jar工具,生成raw格式镜像文件的位表文件。请执行步骤4。 4. 使用CreateMF.jar工具生成位表文件。 1. 请确保当前云服务器已安装jdk。 执行以下命令查看是否已安装jdk: source /etc/profile java version 如果回显信息中显示java版本信息,证明当前云服务器已安装jdk。 2. 执行以下命令进入CreateMF.jar程序所在的目录。 cd /usr/CreateMF 3. 执行以下命令生成位表文件。 java jar CreateMF.jar /原raw文件路径 /生成的mf文件路径 例如: java jar CreateMF.jar image01.raw image01.mf 5. 使用s3cmd工具上传文件至OBS桶。 1. 安装s3cmd工具。 若云服务器已安装该工具可跳过此步骤,直接按照步骤b配置s3cmd: 1. 执行以下命令,安装setuptools。 yum install pythonsetuptools 2. 执行以下命令,安装wget。 yum install wget 3. 执行以下命令,获取s3cmd软件包。 wget mv master.zip s3cmdmaster.zip 4. 执行以下命令,安装s3cmd。 unzip s3cmdmaster.zip cd s3cmdmaster python setup.py install 2. 配置s3cmd工具。 执行以下命令配置s3cmd工具。 s3cmd configure Access Key: 输入AK Secret Key: 输入SK Default Region: 输入所在Region S3 Endpoint: 可参考OBS的Endpoint DNSstyle bucket+hostname:port template for accessing a bucket: 输入带桶名的Server地址,例如mybucket.obs.myclouds.com Encryption password: 不填,直接按回车 Path to GPG program: 不填,直接按回车 Use HTTPS protocol: 是否使用HTTPS,Yes/No HTTP Proxy server name: 代理地址,连接云平台需要连外网(如不需要直接回车) HTTP Proxy server port: 代理端口,连接云平台需要连外网(如不需要直接回车) Test access with supplied credentials? y (如果显示:Success. Your access key and secret key worked fine :) 则表示连接成功) Save settings? y(是否保存配置) 说明 配置完成后,信息会保存在用户目录下“/root/.s3cfg”,如果还想修改,可以重新执行s3cmd configure命令,或者直接编辑.s3cfg文件(执行vi .s3cfg命令进行编辑)。 3. 使用s3cmd命令上传zvhd2格式镜像文件到OBS桶,或者上传raw格式镜像文件及其位表文件到OBS桶。 s3cmd put image01.zvhd2 s3://mybucket/ 注意 .mf位表文件必须和其对应的raw格式镜像文件在同一个OBS桶中。 6. 注册私有镜像。 您可以通过控制台方式、API接口方式,将转换后的zvhd2或raw文件注册为私有镜像。 方法一:通过控制台创建私有镜像 1. 登录IMS控制台。 1. 登录管理控制台。 2. 选择“计算 > 镜像服务”。 进入镜像服务页面。 2. 单击右上角的“创建私有镜像”。 3. 在“创建方式”区域,选择镜像的创建方式为“导入私有镜像”。 4. 在“镜像类型”区域,选择镜像类型为“系统盘镜像”或“数据盘镜像”。 5. 在“选择镜像文件”区域,从列表中选择存放转换后zvhd2或raw格式镜像文件的桶,再选择转换后的镜像文件。如果是raw格式镜像文件,需要确保同名位表文件已上传。 6. 勾选快速通道栏的“开启快速通道”,并确认已优化镜像文件,然后勾选“镜像文件准备”栏的内容。 7. 根据界面提示填写配置信息。 具体的配置参数说明,请参见通过外部镜像文件创建Linux系统盘镜像。 注意 操作系统必须要和镜像文件所含的操作系统一致。 系统盘大小必须大于镜像文件的大小。 通过qemuimgctc工具可查询镜像文件大小:qemuimgctc info test.zvhd2 方法二:通过API方式创建私有镜像 您可以通过接口POST /v2/cloudimages/quickimport/action,实现镜像文件快速导入功能。
        来自:
        帮助文档
        镜像服务 IMS
        用户指南
        创建私有镜像
        快速导入镜像文件
      • MySQL一主两备实例
        关系数据库MySQL版一主两备实例规格及价格对应。 说明 天翼云关系数据库MySQL版对Ⅰ类型资源池和Ⅱ类型资源池的价格有所区分。 本次价格调整及包年折扣变更主要针对Ⅱ类型资源池的主机资源,将分为通用型和独享型两种类型,两种类型价格不同,独享型包含计算增强型和内存优化型。 存储、备份资源价格及优惠维持不变。 Ⅰ类型资源池价格及优惠维持不变,不区分类型。 部分Ⅱ类型资源池已加载国产化处理器,相关价格见下方说明。 具体资源池类型请见 Ⅱ类型资源池 天翼云提供了多种规格的MySQL一主两备实例,区分通用型和独享型(独享型包含计算增强型和内存优化型)。 通用型价格 CPU(核) 内存(GB) 按需标准价格(元/小时) 包月标准价格(元/月) 2 4 1.11 540 2 8 1.45 705 4 8 2.22 1080 4 16 2.96 1440 8 16 4.50 2190 8 32 5.92 2880 16 32 9.99 4860 16 64 13.01 6330 32 64 23.95 11655 32 128 30.45 14820 包年预付费优惠政策:1年65折,2年55折,3年45折,4年35折,5年3折。
        来自:
      • MySQL主备实例
        关系数据库MySQL版主备实例规格及价格对应。 说明 天翼云关系数据库MySQL版对Ⅰ类型资源池和Ⅱ类型资源池的价格有所区分。 本次价格调整及包年折扣变更主要针对Ⅱ类型资源池的主机资源,将分为通用型和独享型两种类型,两种类型价格不同,独享型包含计算增强型和内存优化型。 存储、备份资源价格及优惠维持不变。 Ⅰ类型资源池价格及优惠维持不变,不区分类型。 部分Ⅱ类型资源池已加载国产化处理器,相关价格见下方说明。 具体资源池类型请见 Ⅱ类型资源池 天翼云提供了多种规格的MySQL主备实例,区分通用型和独享型(独享型包含计算增强型和内存优化型)。 通用型价格 CPU(核) 内存(GB) 按需标准价格(元/小时) 包月标准价格(元/月) 2 4 0.83 406 2 8 1.07 520 4 8 1.65 805 4 16 2.05 1000 8 16 3.24 1575 8 32 4.11 2000 16 32 5.95 2897 16 64 7.74 3768 32 64 11.68 5684 32 128 15.95 7761 包年预付费优惠政策:1年65折,2年55折,3年45折,4年35折,5年3折。
        来自:
        帮助文档
        关系数据库MySQL版
        计费说明
        产品资费
        MySQL主备实例
      • 兼容接口和版本
        兼容接口 实例类型 版本 Redis 集群版 同时兼容6.2/5.0/4.0
        来自:
        帮助文档
        云数据库GeminiDB
        GeminiDB Redis接口
        产品介绍
        兼容接口和版本
      • 查看VPC间访问流量
        VPC间访问展示当前防火墙实例防护的VPC间流量数据。 前提条件 配置并开启VPC边界流量防护,且已有流量经过VPC,开启VPC防护的操作步骤请参见“开启VPC边界流量防护”。 查看VPC间访问流量 1. 登录管理控制台。 2. 在左侧导航栏中,单击左上方的,选择“安全> 云防火墙”,进入云防火墙的总览页面。 3. (可选)当前账号下仅存在单个防火墙实例时,自动进入防火墙详情页面,存在多个防火墙实例时,单击防火墙列表“操作”列的“查看”,进入防火墙详情页面。 4. 在左侧导航栏中,选择“流量分析> VPC间访问”,进入“VPC间访问”页面。 5. 查看经过云防火墙的流量统计信息,支持5分钟~7天的数据。 流量看板:VPC间最大流量的相关信息。 VPC间访问:VPC间请求流量和响应流量数据。 取值说明: 时间段 取值说明 近1小时 取1分钟内的平均值 近24小时 取5分钟内的平均值 近7天 取1小时内的平均值 自定义 5分钟~6小时:取1分钟内的平均值 6小时(含)~3天:取5分钟内的平均值 3天(含)~7天(含):取30分钟内的平均值 可视化统计:查看指定时间段内VPC间流量中指定参数的 TOP 5 排行,参数说明请参见表354。单击单条数据查看流量详情,每个详情支持查看50条数据。 VPC间流量可视化统计参数说明: 参数名称 参数说明 TOP访问源IP VPC间流量的源IP地址。 TOP访问目的IP VPC间流量的目的IP地址。 TOP开放端口 VPC间流量的目的端口。 应用分布 VPC间流量的应用信息。 私网IP活动明细:查看指定时间段内私网IP流量 TOP 50 信息。
        来自:
        帮助文档
        云防火墙
        用户指南
        查看流量数据
        查看VPC间访问流量
      • 通过读写分离提升性能
        本页介绍了如何设置读写分离来提升性能。 节点角色说明 不论是副本集实例还是集群版实例,底层都是使用多副本的方式存储数据。多个副本组成一个副本集,正常来说包含 1 个 primary 节点,1 个 hidden 节点,1个或者多个 secondary 节点。 Primary 节点承担数据写入请求,secondary 和 hidden 节点通过 oplog 日志更新数据。 默认情况下,用户的读写请求都会发送到 primary 节点处理,此时整体性能受限于 primary 节点的资源。 用户可以通过下面的方法调整配置参数,将读请求发送给 secondary 节点。通过读写分离,可以很大程度上提升系统的性能。 使用只读节点提升读性能 文档数据库服务支持用户添加只读节点来提升读能力。只读节点实时同步最新数据并提供读访问,另外由于只读节点不会被选举,因此及时发生主从切换,只读节点也不会成为 primary 节点。 用户可以在控制台上添加只读节点,添加成功后,按照控制台给出的 URL 连接进行访问。 通过设置 readPreference 去读指定节点 文档数据库服务在开通时,默认就是 1 个primary,1 个 secondary 和 1 个 hidden 节点的架构。用户可以在连接上文档数据库服务实例之后,通过指定 readPreference 来配置读策略。目前 readPreference 支持的策略有: primary:默认规则,所有读请求发到primary 节点。 primaryPreferred:优先读 primary 节点,如果 primary 节点不可达,则请求 secondary 节点。 secondary:所有读请求发送到 secondary 节点。 secondaryPreferred:优先读 secondary 节点,如果 secondary 不可达,则请求 primary 节点。 nearest:客户端探测每个节点的网络记录,并将读请求均匀发送到最近的可达节点上。默认情况下,如果 2 个节点于客户端的网络距离差距不超过 15ms, 则认为是“一样近”。
        来自:
        帮助文档
        文档数据库服务
        最佳实践
        通过读写分离提升性能
      • 数据库性能
        本页介绍了文档数据库服务性能相关常见问题。 文档数据库服务什么情况下会触发主备切换 当集群和副本集的primary节点down掉之后,会触发主备切换。另外,您也可以在控制台实例基本信息页面进行主动的主备切换。文档数据库服务通过提供集群的连接串方式,便于应用端在主备切换后可以正常的进行读写,建议您使用连接串的方式配置业务的数据库服务访问。 当发现磁盘使用率高时怎么进行问题排查 您可以通过监控查看机器磁盘使用率。如果磁盘使用率高,可以从下面几个角度进行排查解决: 确认业务数据量,您可以先连接数据库,执行 show dbs 命令观察目前数据库的数据量。如果发现是业务数据量太大,那么可以对该实例进行磁盘扩容。 您也可以将过期无需再使用的业务数据进行删除。 文档数据库服务默认使用WiredTiger存储引擎。WiredTiger存储引擎在删除数据时,不会直接释放磁盘空间,您可以借助compact命令进行磁盘空间的释放回收。 对于sharding集群实例,确认是否因选择的分片不合理引发数据分布不均衡问题,可以优化数据库集合分片配置。 副本集中主从同步存在多长时间的延迟 数据库主备同步延迟受多种因素的影响,常见的有: 主备节点间的网络延迟,主备节点间的数据同步需要通过网络传输。 复制策略:异步复制通常会引入更大的延迟。 数据库负载:如主节点的负载较高,处理写入操作的速度可能会受到限制,从而导致主备延迟加大。 事务大小:大事务通常会导致更长的主备同步延迟。 您可以通过连接文档数据库服务,执行rs.printSlaveReplicationInfo()指令查看副本集中的主备同步延迟。
        来自:
        帮助文档
        文档数据库服务
        常见问题
        操作类
        数据库性能
      • 管理类常见问题
        本文汇总了WAF管理类常见问题。 若流量超过当前WAF实例版本支持的带宽峰值时有什么影响? 如果用户将多个网站业务接入WAF实例进行保护,则必须保证所有网站业务的正常峰值带宽之和不超出WAF实例的业务带宽。 超出业务带宽限制,WAF会触发限流、随机丢包等动作,导致用户的网站业务在一定时间内出现卡顿、延迟,甚至不可用等,WAF的服务防护性能无法得到保障,各产品版本规格详情请参见产品规格。 多个域名对应同一源站,WAF可以防护这些域名吗? 可以防护。 域名接入:WAF的防护对象是域名,如果多个域名使用了同一个源站对外提供服务,需要将多个域名都接入WAF实现所有域名的防护。 独享型接入:WAF的防护对象是域名或IP地址,如果多个域名使用了同一个源站对外提供服务,可以将多个域名都接入WAF实现所有域名的防护,或将网站IP接入WAF进行防护。 WAF支持防护IPv6地址吗? 支持,WAF支持添加IPv6的源站地址。 接入WAF的域名需要备案吗? 使用WAF前,请确保域名已在工信部备案,未备案域名将无法正常使用WAF。如何备案请参见新增备案。 说明 根据 《非经营性互联网信息服务备案管理办法》第五条规定:在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。未经备案,不得在中华人民共和国境内从事非经营性互联网信息服务。本办法所称在中华人民共和国境内提供非经营性互联网信息服务,是指在中华人民共和国境内的组织或个人利用通过互联网域名访问的网站或者利用仅能通过互联网IP地址访问的网站,提供非经营性互联网信息服务。第十九条规定:互联网接入服务提供者应当记录其接入的非经营性互联网信息服务提供者的备案信息。
        来自:
        帮助文档
        Web应用防火墙(原生版)
        常见问题
        管理类
        管理类常见问题
      • 数据源管理
        HIVE/INCEPTOR数据源配置 选择Hive或Inceptor数据源类型时,表单在基本属性模块提供额外配置内容,包括集群平台、认证类型等,且均为必填项。 配置内容 说明 集群平台 可选项包括APACHEHADOOP、CDH(Hive),或TDH(Inceptor)。 认证类型 可选项包括常规认证、Kerberos认证(Hive),或常规认证、Kerberos认证、Token认证(Inceptor) 常规认证:选择此认证方式时,基本属性模块的末尾展开账号、密码输入框,账号、密码为非必填项; Kerberos认证: 选择此认证方式时,下方展开Hive Principal 和Kerberos Principal两个输入框;此外,需要额外上传Kerberos配置文件与 Kerberos keytab文件,点击 打开本地浏览页面,选择文件确认后,上传到服务端; Token认证: 选择此认证方式时,下方展开guardianToken输入框。 导入数据源 1.使用安全管理员账号登录数据分类分级实例。 2.在左侧导航栏选择“数据资产管理 > 数据源管理”即可进入“数据源管理”页面查看数据源列表。 3.单击页面右上角的“导入”按钮,可以批量导入数据源。 4.选择“模板下载”,在下载的模板中填写相关内容。 说明 数据源名称不得与系统内已有的数据源名称重复; 若类型为ORACLE数据库,则“库名/实例名”与“服务名”必选填一个,“角色”在NORMAL、SYSDBA、SYSOPER中必选一个值; 若类型为INFORMIX数据库,则“库名/实例名”与“服务名”均为必填; SFTP/FTP/LOCAL/METADATA/MYSQL分片环境/HIVE类型数据源暂不支持通过该模板批量导入,请使用 功能在产品界面中直接添加。 导入本文件时无需配置行业模板。数据源导入成功后,行业模板默认使用当前的默认模板。
        来自:
        帮助文档
        数据安全专区
        用户指南
        数据分类分级操作指导
        数据资产管理
        数据源管理
      • 同步/删除天翼云对象存储桶
        本文为您介绍同步/删除天翼云对象存储桶的具体操作。 同步天翼云对象存储桶 使用条件 单次同步天翼云对象存储资源上限为10个。 操作步骤 1. 登录天翼云,进入控制中心。 2. 单击管理控制台左上角的,选择区域。 3. 在服务列表选择“计算”“多活容灾服务”,进入多活容灾服务控制台。 4. 点击左侧菜单栏“资源管理”“对象存储”,进入对象存储列表页。 5. 点击页面右上角“同步天翼云对象存储桶”按钮,弹出同步天翼云对象存储弹窗。 6. 选择资源所属地域,选中同步的对象存储实例,点击“确定”按钮,完成对象存储同步操作。 删除天翼云对象存储桶 使用条件 仅未被容灾管理中心关联的对象存储允许删除。 操作步骤 1. 登录天翼云,进入控制中心。 2. 单击管理控制台左上角的,选择区域。 3. 在服务列表选择“计算”“多活容灾服务”,进入多活容灾服务控制台。 4. 点击左侧菜单栏“资源管理”“对象存储”,进入对象存储列表页。 5. 选中对象存储列表中需删除的对象存储,点击列表上方“删除”按钮,弹出删除对象存储弹窗。 6. 确认需删除的对象存储和相关信息后,若存在不可进行删除操作的对象存储时,可点击“点击查看”按钮查看实例及不可删除原因。点击“确认”按钮,完成对象存储实例删除操作。
        来自:
        帮助文档
        多活容灾服务
        用户指南
        资源管理
        同步对象存储资源
        同步/删除天翼云对象存储桶
      • 服务详情概述
        本章节主要介绍翼MapReduce的服务详情操作。 总览 登录FusionInsight Manager以后,选择“集群 > 待操作集群的名称 > 服务”,在服务列表单击指定的服务名称打开服务详情页面,包含“概览”、“实例”、“实例组”和“配置”等页面,以及功能区。部分服务还支持显示自定义的管理工具页面,具体支持列表如下表所示。 自定义管理工具名称一览表 工具名称 对应服务 说明 Flume配置工具 Flume 用于为Flume的服务端和客户端配置采集参数。 Flume客户端管理工具 Flume 查看Flume客户端监控信息。 Kafka Topic监控工具 Kafka 用于为Kafka的Topic提供监控与管理。 其中“概览”为默认页,包含基本信息、角色列表、依赖关系表和监控图表等,右上角可对服务进行管理,基本管理如启动、停止、滚动重启、同步配置请参考上表,其他服务管理操作如下表所示: 服务管理操作 操作入口 说明 “更多 > 健康检查” 为当前服务进行健康检查,健康检查可以包含三方面检查项:各检查对象的“健康状态”、相关的告警和自定义的监控指标,检查结果并不能等同于界面上显示的“运行状态”。健康检查的结果可直接在检查列表左上角单击“导出报告”,选择导出结果。如果发现问题,可以单击“查看帮助”。 “更多 > 下载客户端” 为用户下载默认的仅包含具体服务的客户端,通过客户端执行管理操作、运行业务或进行二次开发,具体可参考下载客户端。 “更多 > 修改服务名称” 修改当前服务名称。 “更多 > 执行角色名称倒换” 具体请参考执行角色实例主备倒换。 “更多 > 进入维护模式/退出维护模式” 配置服务进入/退出维护模式。 “配置 > 导入/导出” 在迁移服务到新集群场景或者重新部署相同服务的场景下,为具体服务的所有配置数据做导入或者导出操作,实现配置结果的快速复制。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        集群管理
        管理服务
        其他服务管理操作
        服务详情概述
      • 回源配置
        注意事项 一个加速域名/实例的源站IP/域名最多可以添加60个。 配置界面
        来自:
        帮助文档
        边缘安全加速平台
        边缘接入
        域名
        IP应用加速配置
        回源配置
      • 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调用示例
      • 监控看板:视图详情
        参数 参数类型 说明 示例 下级对象 viewID String 监控视图ID 0a84e6da9fabfcd115526ab6a0b7ac88 name String 监控视图名称 name service String 云监控服务 ecs dimension String 云监控维度 ecs viewType String 视图类型。取值范围:timeSeries:折线图。gauge:仪表盘。barChart:柱状图。table:表格。pieChart:饼状图。根据以上范围取值。 timeSeries orderIndex Integer 排序次序,相同则按照updateTime降序。 0 itemNameList Array of Strings 监控指标,指标项最多支持20个 ['cpuutil'] compares Array of Strings 同比环比比较时间配置,格式为“数字+单位”,单位为空时默认为秒。单位取值范围:m:分钟。h:小时。d:天。根据以上范围取值。 ['1d'] resources Array of Objects 监控资源实例 ,监控资源实例最多支持20个 resource gaugePattern Object 仪表盘配置,仅当viewType为gaugePattern时有效 gaugePattern createTime Integer 创建时间,时间戳,精确到秒 1667459789 updateTime Integer 最近更新时间, 时间戳,精确到秒 1667459789
        来自:
        帮助文档
        云监控服务
        API参考
        API(新)
        监控面板
        监控看板:视图详情
      • 应用开启
        本文介绍如何开启应用市场内的应用。 应用市场提供丰富的云应用和工具,无需本地复杂安装,通过一键部署的模式,即可快速高效的搭建数字化服务。 操作步骤 1.进入【应用市场】,可通过查询条件筛选列表中的应用。 2.选择应用点击对应的【开启应用】按钮,进入应用详情页。以Dify1.9.1为例: 3.设置管理员密码(请记住本次设置的密码),选择访问策略,是否允许公网访问,并勾选相关协议,点击【开启应用】按钮。 4.应用购买成功后,可在【应用】【应用实例】中,查看已购买的应用实例。 5.待应用处于运行中状态时,可点击【访问】操作,点击访问地址进行应用使用。
        来自:
        帮助文档
        AI Store
        用户指南
        应用市场用户指南
        应用开启
      • topic、queue的规划
        在RocketMQ中,队列数直接影响到消费者实例数的上限,同一消费组消费者实例数的上限等于队列数,对于集群消费的情况,需考虑队列数的设置。 在RocketMQ中,队列能分布到不同的Broker上,是RocketMQ分布式的基础。Queue分布在Broker中,则能使用Broker的资源,包括存储、IO等,一般情况下,分布在某个Broker上的Queue比例越大,则占用此Broker的资源越多,Topic中的Queue分布到的Broker数量越多,则性能越好、存储越大。若Broker的所在机器性能不同,可以通过调整Queue数量,达到资源调优的目的,在应用设计时,需要充分利用上述特性。 在Push消费模式中,API会默认为每个队列预拉取消息1000条,若队列数过大、或者单条消息包体过大,则需要考虑设置减少预拉数量,防止预拉消息过大导致内存溢出。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        最佳实践
        topic、queue的规划
      • 副本集测试数据
        本页介绍了文档数据库服务的副本集类型实例性能测试数据。 术语说明 threads:压测线程数,也对应了压测客户端到文档数据库服务的连接总数。 recordcount:数据总条数,每条数据长度为 1KB。 operationcount:请求总数。 OPS:数据库每秒操作数。 加载测试数据 主机及存储类型 CPU:Memory 实例规格 threads recordcount OPS c7 超高IO 1 : 2 2C4G 16 2000000 14996 c7 超高IO 1 : 2 4C8G 32 4000000 32396 c7 超高IO 1 : 2 8C16G 64 8000000 50393 c7 超高IO 1 : 4 2C8G 16 4000000 15371 c7 超高IO 1 : 4 4C16G 32 8000000 29677 c7 超高IO 1 : 4 8C32G 64 16000000 47426 c7 超高IO 1 : 4 16C64G 128 32000000 63362 c8 XSSD1 1 : 2 2C4G 16 2000000 17034 c8 XSSD1 1 : 2 4C8G 32 4000000 34826 c8 XSSD1 1 : 2 8C16G 64 8000000 69327 c8 XSSD1 1 : 4 2C8G 16 4000000 17512 c8 XSSD1 1 : 4 4C16G 32 8000000 29895 c8 XSSD1 1 : 4 8C32G 64 16000000 67629 c8 XSSD1 1 : 4 16C64G 128 32000000 63224
        来自:
        帮助文档
        文档数据库服务
        性能白皮书
        副本集测试数据
      • 计费类
        公共传输通道是否计费? 公共传输通道在天翼云官网为免费产品。如需开通公共传输通道服务,请联系客户经理咨询具体价格及计费方式,客户经理会与您沟通商务内容。签署合同后,客户经理将协助您开通公共传输通道业务,并跟进后续公共传输通道业务的变更和退订等相关业务。 公共传输通道的计费规则是什么? 公共传输通道收费项分为网络使用费和路由条目增强服务费;其中网络使用费分为三类:一是天翼云资源池站点网络使用费,二是客户站点网络使用费,三是第三方云站点使用费。 路由条目如何收费? 如果客户VPN站点的路由条目数超过该站点的默认标准,对超出部分按月以每条20元的标准收取路由条目增强服务费。 站点实例如何停止收费? 站点实例默认自动续订,若有意终止公共传输通道服务的使用,请您务必执行退订操作。
        来自:
        帮助文档
        公共传输通道
        常见问题
        计费类
      • Kafka健康检查指标项说明
        本章节主要介绍翼MapReduce服务Kafka健康检查指标项说明。 Broker可用节点数 标项名称 :Broker数目 指标项含义 :检查集群中可用的Broker节点数,若集群中可用的Broker节点数小于2,则认为不健康。 恢复指导 :如果该指标项异常,进入Kafka服务实例页面,单击不可用Broker实例的“主机名”,在“概要信息”中查看主机的健康状态,若为“良好”,则参见“进程故障”告警进行处理;若不为“良好”,则参见“节点故障”告警进行处理。 服务健康状态 指标项名称 :服务状态 指标项含义 :检查Kafka服务状态是否正常。如果状态不正常,则认为不健康。 恢复指导 :如果该指标项异常,建议参见“Kafka服务不可用”告警进行处理。 检查告警 指标项名称 :告警信息 指标项含义 :检查服务是否存在未清除的告警。如果存在,则认为不健康。 恢复指导 :如果该指标项异常,建议参见告警进行处理。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        MRS Manager操作指导(适用于2.x及之前)
        健康检查管理
        Kafka健康检查指标项说明
      • ALM-19019 HBase容灾等待同步的HFile文件数量超过阈值
        检查备集群HBase服务规模 12.对HBase集群扩容,增加节点,并在节点上增加RegionServer实例。然后执行步骤步骤6 步骤步骤10,打开负载均衡功能并手动触发。 13.在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > HBase”,单击“HMaster(主)”,打开该HBase实例的WebUI,刷新页面查看Region分布是否均衡。 是,执行步骤14。 否,执行步骤15。 14.观察该告警是否清除。 是,处理完毕。 否,执行步骤15。 收集故障信息 15.在主备群的FusionInsight Manager界面,选择“运维 > 日志 > 下载”。 16.在“服务”中勾选待操作集群的“HBase”。 17.单击右上角的设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。 18.请联系运维人员,并发送已收集的故障日志信息。 告警清除 此告警修复后,系统会自动清除此告警,无需手工清除。 参考信息 无。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        告警参考(适用于MRS 3.x版本)
        ALM-19019 HBase容灾等待同步的HFile文件数量超过阈值
      • 包年包月
        本章会介绍关系型数据库包年包月的收费模式。 1、收费方式 (1)预付费方式:用户需先登录天翼云用户中心进行充值,系统会根据用户选购的实际资源对用户云账户中的金额进行扣除。 (2)计费周期:按月计费,以自然月为计费单位。 2、升级规则 关系型数据库升级时间不满整月的,升级后配置按当月实际发生天数计费。 3、续订规则 续订数据库,续费按原订购模式按月方式进行续费。 4、退订规则 退订云数据库,不满整月的按当月实际发生天数收取费用。 退订云数据库后实例会进入冻结状态,冻结周期为15天,冻结期过后如不续费会删除实例。 5、提醒/通知规则 (1)到期通知:服务到期前7天、3天邮件通知,到期前1天、当天邮件通知和短信提醒。 (2)超期通知:服务超期1天邮件通知,超期3天、7天邮件通知和短信提醒。
        来自:
        帮助文档
        关系数据库PostgreSQL版
        计费说明
        计费方式
        包年包月
      • 包年包月
        本章会介绍关系型数据库包年包月的收费模式。 1、收费方式 (1)预付费方式:用户需先登录天翼云用户中心进行充值,系统会根据用户选购的实际资源对用户云账户中的金额进行扣除。 (2)计费周期:按月计费,以自然月为计费单位。 2 、升级规则 关系型数据库升级时间不满整月的,升级后配置按当月实际发生天数计费。 3 、续订规则 续订数据库,续费按原订购模式按月方式进行续费。 4 、退订规则 退订云数据库,不满整月的按当月实际发生天数收取费用。 退订云数据库后实例会进入冻结状态,冻结周期为15天,冻结期过后如不续费会删除实例。 5 、提醒/通知规则 (1)到期通知:服务到期前7天、3天邮件通知,到期前1天、当天邮件通知和短信提醒。 (2)超期通知:服务超期1天邮件通知,超期3天、7天邮件通知和短信提醒。
        来自:
        帮助文档
        关系数据库MySQL版
        计费说明
        计费方式
        包年包月
      • 升级轻量型云主机
        本文介绍了如何对轻量型云主机进行套餐升级。 操作场景 若当前服务套餐无法满足您业务的需求,可以对服务进行升级操作,增大各资源规格。 前提条件 轻量型云主机状态为关机状态。 约束限制 轻量型云主机只支持套餐升级操作(即目标套餐的CPU、内存、系统盘、带宽均大于等于当前套餐),不支持套餐降级操作。 请于48小时内支付订单,否则升级操作失败,数据将被清空,请谨慎进行操作升级。 套餐升级成功后,实例现有的IP地址、防火墙策略不受影响,实例到期时间不变。 轻量型云主机完成升级后处于关机状态,需用户手动开启,重启业务。 操作步骤 1. 登录天翼云,进入控制中心。 2. 单击控制中心顶部的,选择资源所在地,此例我们选择上海36。后续您也可以在创建页面对“地域”进行修改。 3. 单击左侧导航栏“产品服务列表”,选择“计算>轻量型云主机”。 4. 进入轻量型云主机列表界面,在目标轻量型云主机“操作”列下拉“更多”选择“升级”。 您也可以单击目标主机“实例名称”进入目标主机详情页,单击右侧顶部“更多”,下拉选择“升级”进行套餐升级。 5. 出现升级套餐弹窗,用户可按需选择要升级的固定套餐,也可升级至随心购套餐,灵活搭配套餐内各类资源。 6. 确定配置后,单击“确定”,完成支付后,即完成轻量型云主机套餐升级。
        来自:
        帮助文档
        轻量型云主机
        用户指南
        升级轻量型云主机
      • 查询消息
        本文主要介绍查询消息。 操作场景 您可以查看指定Topic不同分区的偏移量、消息大小、创建时间以及消息正文。 操作步骤 步骤 1 登录管理控制台。 步骤 2 在管理控制台右上角单击,选择区域。 说明 请选择Kafka实例所在的区域。 步骤 3 在管理控制台左上角单击,选择“企业中间件”“分布式消息服务”“Kafka专享版”,进入分布式消息服务Kafka专享版页面。 步骤 4 单击Kafka实例名称,进入实例详情页面。 步骤 5 选择“消息查询”页签,在消息页签页面,设置查询的Topic名称、分区以及查询方式。 如果未设置具体分区,查询结果显示Topic所有分区的消息。 查询方式支持以下两种方式: 按创建时间查询:即按生产该消息的时间。 按偏移量查询:即记录消息的位置。 说明 当Topic中的数据量比较大时,单副本Topic查询消息可能会报“内部服务错误”,建议根据数据量适当减小查询时间范围。 步骤 6 单击“搜索”,查询消息。 查询结果如下: 图 查询Topic消息 消息的参数说明如下: Topic名称:消息所在的Topic名称。 分区:消息所在的分区。 偏移量:消息在分区中的位置。 消息大小:消息存入磁盘的大小,单位为B。 创建时间:消息的创建时间。创建时间由生产客户端在生产消息时通过CreateTime指定的,如果生产消息时没有设置此参数,创建时间会默认为1970。 步骤 7 单击“查看消息正文”,弹出“查看消息正文”对话框,查看消息的内容,包括Topic名称、分区、偏移量、创建时间和消息正文。 步骤 8 (可选)如果需要恢复默认设置,单击“重置”。
        来自:
        帮助文档
        分布式消息服务Kafka
        用户指南
        消息管理
        查询消息
      • 编译运行Demo Java工程
        介绍连接Kafka编译运行Demo Java工程 kafkaclients引入依赖 在使用Kafka时,你需要在你的项目中引入相应的依赖。具体的依赖项可能会因你的项目和需求而有所不同。在使用Kafka之前,请确保查阅官方文档以获取最新的依赖项和使用说明。 以Java编程语言为例,可以使用Kafka的Java客户端库。你可以在Maven或Gradle构建工具中添加以下依赖项: org.apache.kafka kafkaclients 示例代码 1. 从控制台获取以下信息 连接地址 实例连接地址从控制台实例详情菜单处获取,在实例详情页面的接入点信息一栏。 Topic名称 在Topic管理页面,选择需要的Topic名称。 消费组名称 在消费组管理页面,选择需要的消费组名称。 2. 在实例代码中替换以上信息即可实现消息。 import org.apache.kafka.clients.producer.Callback; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.clients.producer.RecordMetadata; import org.apache.kafka.common.serialization.StringSerializer; import java.util.Properties; public class Producer { private final KafkaProducer producer; public final static String TOPIC "testtopic"; public final static String BROKERADDR "192.168.0.11:8090,192.168.0.9:8090,192.168.0.10:8090"; public Producer() { Properties props new Properties(); props.put(ProducerConfig.BOOTSTRAPSERVERSCONFIG, BROKERADDR); props.put(ProducerConfig.VALUESERIALIZERCLASSCONFIG, StringSerializer.class.getName()); props.put(ProducerConfig.KEYSERIALIZERCLASSCONFIG, StringSerializer.class.getName()); props.put(ProducerConfig.ACKSCONFIG, "all"); props.put("retries",3); producer new KafkaProducer<>(props); } public void produce() { try { for (int i 0; i (TOPIC, data), new Callback() { public void onCompletion(RecordMetadata metadata, Exception exception) { if (exception ! null) { // TODO: 异常处理 exception.printStackTrace(); return; } System.out.println("produce msg completed, partition id " + metadata.partition()); } }); } } catch (Exception e) { // TODO: 异常处理 e.printStackTrace(); } producer.flush(); producer.close(); } public static void main(String[] args) { Producer producer new Producer(); producer.produce(); } } 3. 同样在实例代码中替换以上信息即可消费消息。 import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import java.util.Arrays; import java.util.Properties; public class Consumer { private org.apache.kafka.clients.consumer.Consumer consumer; private static final String GROUPID "testgroup"; private static final String TOPIC "testtopic"; public final static String BROKERADDR "192.168.0.11:8090,192.168.0.9:8090,192.168.0.10:8090"; public Consumer() { Properties props new Properties(); props.put(ConsumerConfig.BOOTSTRAPSERVERSCONFIG, BROKERADDR); props.put(ConsumerConfig.GROUPIDCONFIG, GROUPID); props.put(ConsumerConfig.AUTOOFFSETRESETCONFIG, "earliest"); props.put(ConsumerConfig.ENABLEAUTOCOMMITCONFIG, "false"); props.put(ConsumerConfig.KEYDESERIALIZERCLASSCONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); props.put(ConsumerConfig.VALUEDESERIALIZERCLASSCONFIG, "org.apache.kafka.common.serialization.StringDeserializer"); consumer new KafkaConsumer<>(props); } public void consume() { consumer.subscribe(Arrays.asList(TOPIC)); while (true){ try { ConsumerRecords records consumer.poll(1000); System.out.println("the numbers of topic:" + records.count()); for (ConsumerRecord record : records) { System.out.println("the data is " + record.value()); } }catch (Exception e){ // TODO: 异常处理 e.printStackTrace(); } } } public static void main(String[] args) { new Consumer().consume(); } }
        来自:
        帮助文档
        分布式消息服务Kafka
        快速入门
        编译运行Demo Java工程
      • 创建数据订阅任务
        本文为您介绍创建数据订阅任务的操作场景、前提条件和操作步骤。 操作场景 场景一:数据实时分析 使用云监控数据订阅功能,将业务进行异步解耦,在不影响源库业务的情况下,实时同步监控数据(指标、事件)或告警数据到客户自有分析系统中,帮助企业用户进行实时数据分析。 场景二:数据归档存储 使用云监控数据订阅功能,您可将资源监控或告警数据的增量更新数据,实时地推送到归档数据库或数据仓库。 说明 数据订阅功能当前为受限开放,如有需求可以联系客户经理为您开放此功能。 资源池下单个用户最多可创建10个数据订阅任务。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 注意 数据订阅功能数据类型支持指标数据、事件数据,订阅方式支持分布式消息服务及API方式。 指标数据订阅支持分布式消息服务(kafka)及remotewriteapi方式。 事件数据订阅支持分布式消息服务(kafka)及apipush方式。(事件订阅入口为:云监控服务>事件监控>事件订阅) 创建订阅任务需提前创建订阅渠道。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本文我们选择华东1。 3. 依次选择“管理与部署”,单击“云监控”,进入监控概览页面。 4. 单击左侧“数据订阅”菜单,进入数据订阅任务列表。 5. 单击“创建订阅任务”功能,进入数据订阅任务创建二级页面。 6. 创建订阅任务参数配置如下: 模块 参数 参数说明 配置示例 备注 选择订阅对象 服务维度 选择需要订阅数据的服务维度信息,支持多选 云主机云主机 选择订阅对象 监控对象类型 具体实例 选择订阅对象 选择对象 选择资源实例对象 具体实例 定义订阅方式 订阅通道 选择公网/内网 分布式消息服务 定义订阅方式 发送渠道 Kafka Kafka 定义订阅方式 订阅失败缓存时间 输入用户客户端地址 基础信息 订阅任务名称 填写自定义订阅任务名称 testtask 基础信息 描述 填写订阅任务描述信息 说明 关于告警数据订阅全部资源的场景,涉及两个周期: 订阅服务subscription同步订阅配置的周期,预计上线配置2分钟。 数据订阅配置全部资源,也需要周期同步全量的实例资源,预计线上配置3分钟。 因此,考虑极限情况,告警订阅服务在周期1 + 周期2之后产生的告警,订阅服务才能匹配消费到。
        来自:
        帮助文档
        云监控服务
        用户指南
        数据订阅
        创建数据订阅任务
      • 基于Dify和DeepSeek构建本地知识库的最佳实践
        操作步骤 部署Dify应用 订购应用 1. 登录应用托管控制台,选择左侧的应用市场点击进入页面。 2. 在应用市场页面,选择目标应用,点击【开启应用】,进入应用部署页面。 3. 填写管理密码,选择访问策略及公网访问,勾选同意用户协议,点击【开启应用】,支付订单,即可完成Dify应用服务部署。 服务详情查看 1. 进入应用托管租户控制台。 2. 选择【应用实例】,进入应用实例列表页面。 3. 刷新应用实例列表,等待新创建的应用进入到【运行中】状态后点击右侧操作栏【访问】,点击下拉访问链接。 4. 进入Dify应用界面。可使用管理员账号和设置的密码登录Dify,登陆后用户可自行进行更改密码。账号:admin@admin.com;密码:可点击“应用实例”进入详情页,在“配置详情”中的“管理员密码”查看。 在Dify中添加DeepSeek模型 Dify支持多模型管理与调用,可以便捷的添加我们所需的模型,我们这里以使用ollama添加DeepSeek模型为例。 1. 在Dify控制台点击设置进入模型供应商编辑页面。 2. 通过OpenAIAPIcompatible分别添加一个LLM模型和Text Embedding模型,Text Embedding模型用于知识库的向量化处理。 3. 添加LLM模型,输入ollama部署的DeepSeek模型名称、基础URL和API KEY,点击保存添加模型。输入示例,实际使用时请按情况替换:模型名称:deepseekr1:7b ;API KEY:YWRtadPb2psRQ;基础URL:需在调用地址后增加后缀/v1。 4. 同样的方式,添加一个Text Embedding模型用于文档向量化处理。Text Embedding模型可以与LLM模型使用同一个模型和基础URL。 5. 在系统模型配置页面设置系统推理模型和Embedding模型,一般系统会默认选择第一个可用模型,若模型显示为空,请刷新页面后重试。 6. 系统模型配置完毕后,即可在应用编排界面配置模型参数和使用模型。模型参数会影响模型的输出效果,用户可自行探索,这里不再详细描述。
        来自:
        帮助文档
        应用托管
        最佳实践
        基于Dify和DeepSeek构建本地知识库的最佳实践
      • 应用场景
        本节介绍了分布式消息服务RabbitMQ产品常见应用场景。 行业应用 RabbitMQ在需要高效、可靠的消息传递和处理的任何行业都有广泛的应用,常见行业及其实际业务场景如下。 电子商务:RabbitMQ可用于处理订单和库存管理,处理支付通知及其它与物流相关的消息。 金融服务:RabbitMQ可以用于处理实时交易数据、通知和报价,并支持金融机构之间的异步通信。 电信:RabbitMQ可用于处理电话呼叫记录、短信和多媒体消息的分发等。 物流和供应链管理:RabbitMQ可以用于跟踪货物的位置和状态,以及协调供应链中各个环节的消息传递。 社交媒体:RabbitMQ可以用于实现实时消息推送、聊天和通知功能,以及处理用户生成内容。 游戏开发:RabbitMQ可用于处理游戏中的多人互动、玩家间的消息传递和协作。 科学和研究领域:RabbitMQ可以用于分布式计算、任务队列和数据流处理。 RabbitMQ通常用于业务的应用解耦、错峰流控与流量削峰和异步通信场景。 应用解耦 RabbitMQ可以将应用程序之间的耦合度降低,使得系统更加灵活和可扩展。以下是一些使用RabbitMQ实现应用解耦的举例: 订单和库存管理系统:假设有一个在线商店,订单系统负责接收和处理用户的订单,而库存管理系统则负责跟踪库存并更新库存状态。通过使用RabbitMQ,订单系统可以将订单信息发送到一个名为"orderqueue"的消息队列中,而库存管理系统则监听该队列,并在收到订单消息时进行库存更新。这样,订单系统和库存管理系统可以解耦,并且可以独立地进行扩展和维护。 日志处理系统:在一个大规模的分布式系统中,各个服务都会生成大量的日志信息。为了对这些日志进行集中管理和分析,可以使用RabbitMQ作为日志消息的中间代理。每个服务将其产生的日志消息发送到RabbitMQ的一个名为"logqueue"的消息队列中,然后日志处理系统从该队列中消费日志消息,并进行相应的处理和存储。这样,每个服务的日志处理可以独立进行,互不影响。 流量控制系统:在一个微服务架构中,可能会有多个服务实例同时运行,当某个服务实例过载时,传统的负载均衡器无法有效地控制流量分发。通过使用RabbitMQ,可以实现基于消息的流量控制。每个服务实例将其当前的负载情况发送到一个名为"loadqueue"的消息队列中,一个负载控制器订阅该队列,并根据各个服务实例的负载情况来动态调整流量分发。这样,流量控制仍然可以在应用层面进行解耦。
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        产品简介
        应用场景
      • Redis使用规范
        Redis命令的常用规范 规范 规范说明 级别 备注 小心使用时间复杂度为O(N)的命令 对于时间复杂度为O(N)的命令如果N值较大,可能会导致Redis执行过慢,影响整体性能和稳定性 强制 例如:hgetall、lrange、smembers、zrange、sinter这些命令都是做全集操作,如果元素很多,是很耗性能的可使用hscan、sscan、zscan这些分批扫描的命令替代 命令禁用 部分命令是禁止使用的,需要最好提早了解清楚 强制 使用前,请参考Redis命令兼容性和WebCli命令兼容性 慎重使用select Redis多数据库支持较弱,多业务用多数据库实际还是单线程处理,会有干扰 建议 需要多DB的场合,建议拆分多个redis使用 CLUSTER集群实例不支持多DB 批量操作 如果有批量操作,可使用mget、mset或pipeline,提高效率,但要注意控制一次批量操作的元素个数免得导致执行过慢,占用Redis过多的资源 建议 如果有批量操作,可使用mget、mset或pipeline,提高效率,但要注意控制一次批量操作的元素个数mget、mset和pipeline的区别如下: mget和mset是原子操作,pipeline是非原子操作 pipeline可以打包不同的命令,mget和mset做不到 使用pipeline,需要客户端和服务端同时支持 lua脚本执行耗时 lua脚本的执行超时时间为5秒钟,建议不要在lua脚本中使用比较耗时的代码 强制 比如长时间的sleep、大的循环等语句 避免在lua脚本中使用随机函数 调用lua脚本时,建议不要使用随机函数去指定key,否则在主备节点上执行结果不一致,从而导致主备节点数据不一致 强制 遵循CLUSTER集群实例使用lua的限制 遵循CLUSTER集群实例使用lua的限制 强制 cluster集群实例使用lua有如下限制: 使用EVAL和EVALSHA命令时,命令参数中必须带有至少1个key,否则客户端会提示“ERR eval/evalsha numkeys must be bigger than zero in redis cluster mode”的错误 使用EVAL和EVALSHA命令时,cluster集群实例使用第一个key来计算slot,用户代码需要保证操作的key是在同一个slot 不要直接使用del命令删除大Key 删除大Key时,不要直接使用del命令因为del命令是阻塞的,也会同时阻塞其他客户端请求无法正常执行 强制 Redis 4.0后的版本可以通过UNLINK命令安全地删除大Key,该命令是异步非阻塞 对于 4.0之前的版本: 如果是Hash类型的大Key,推荐使用hscan + hdel 如果是List类型的大Key,推荐使用ltrim 如果是Set类型的大Key,推荐使用sscan + srem 如果是SortedSet类型的大Key,推荐使用zscan + zrem 的 控制pipeline命令个数 使用Pipeline时,建议不要一次太多命令因为会占用大量Redis资源和执行时间较长,可能会卡住其他请求无法执行 建议 单次建议不超过100,同时也需要考虑实际元素字节数大小情况 合理使用发布订阅命令 不建议将 Redis 当作消息队列使用Redis 当作消息队列使用,会有容量、网络、效率、功能方面的多种问题 建议 如需要消息队列,可使用高吞吐的Kafka或者高可靠的RabbitMQ Redis事务限制 Redis事务是不支持回滚的如果事务在中途某个命令失败了,那么前面的命令依然会执行成功 建议
        来自:
        帮助文档
        分布式缓存服务Redis版
        最佳实践
        Redis使用规范
      • 邀请外部账号使用
        本文为邀请外部账号进行产品使用的实践介绍。 仅有实例创建者的主子账号可默认访问对应实例并进行产品使用。外部账号需申请体验并通过审核后方可使用。以下是外部账号邀请的具体流程。 使用申请 说明 以下为外部账号申请视角。 未申请或未通过申请的外部账号在点击产品入口后,浏览器会自动弹出申请页面。 外部账号点击“申请体验”,等待申请通过即可。 产品入口获取方式详见说明文档。 如果申请已审批通过,请刷新页面后即可进入慧政智能体产品页面。 申请审批 说明 以下为系统审批者视角。 仅慧政智能体应用的租户管理员(主账号默认为租户管理员)或拥有用户管理菜单权限的用户可以进行外部账号权限审批。 审批者操作: 点击【系统设置用户管理】,进入用户管理页面。 找到对应的待审批记录,点击【启用】,即可通过申请。
        来自:
        帮助文档
        知识库问答
        最佳实践
        邀请外部账号使用
      • 1
      • ...
      • 303
      • 304
      • 305
      • 306
      • 307
      • ...
      • 388
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

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

      安全隔离版OpenClaw

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

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

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

      青云志云端助力计划

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

      企业出海解决方案

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

      天翼云信创专区

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

      中小企业服务商合作专区

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

      云上钜惠

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

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      多活容灾服务 MDR

      GPU云主机

      天翼云CTyunOS系统

      训推服务

      公共算力服务

      一站式智算服务平台

      智算一体机

      推荐文档

      卸载磁盘

      产品功能

      登录

      实名认证流程?

      升级

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