- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 开始使用ROMA Connect
- 实例管理
- 集成应用管理
-
数据源管理
- ROMA Connect支持的数据源
- 接入API数据源
- 接入ActiveMQ数据源
- 接入ArtemisMQ数据源
- 接入DB2数据源
- 接入DIS数据源
- 接入DWS数据源
- 接入DM数据源
- 接入Gauss100数据源
- 接入FTP数据源
- 接入HL7数据源
- 接入HANA数据源
- 接入HIVE数据源
- 接入LDAP数据源
- 接入IBM MQ数据源
- 接入Kafka数据源
- 接入MySQL数据源
- 接入MongoDB数据源
- 接入MQS数据源
- 接入MRS Hive数据源
- 接入MRS HDFS数据源
- 接入MRS HBase数据源
- 接入MRS Kafka数据源
- 接入OBS数据源
- 接入Oracle数据源
- 接入PostgreSQL数据源
- 接入Redis数据源
- 接入RabbitMQ数据源
- 接入RocketMQ数据源
- 接入SAP数据源
- 接入SNMP数据源
- 接入SQL Server数据源
- 接入GaussDB(for MySQL)数据源
- 接入WebSocket数据源
- 接入自定义数据源
- 数据集成指导
- 服务集成指导
- 服务集成指导(旧版界面)
- 消息集成指导
- 设备集成指导
- 应用业务模型使用指导
- 扩大资源配额
- 查看审计日志
- 查看监控指标
- 权限管理
- 用户指南(新版)
- 最佳实践
-
开发指南
- 数据集成开发指导
-
服务集成开发指导
- 开发说明
- API调用认证开发(APP认证)
- API调用认证开发(IAM认证)
-
自定义后端开发(函数后端)
- 函数后端脚本开发说明
- AesUtils类说明
- APIConnectResponse类说明
- Base64Utils类说明
- CacheUtils类说明
- CipherUtils类说明
- ConnectionConfig类说明
- DataSourceClient类说明
- DataSourceConfig类说明
- ExchangeConfig类说明
- HttpClient类说明
- HttpConfig类说明
- JedisConfig类说明
- JSON2XMLHelper类说明
- JSONHelper类说明
- JsonUtils类说明
- JWTUtils类说明
- KafkaConsumer类说明
- KafkaProducer类说明
- KafkaConfig类说明
- MD5Encoder类说明
- Md5Utils类说明
- QueueConfig类说明
- RabbitMqConfig类说明
- RabbitMqProducer类说明
- RedisClient类说明
- RomaWebConfig类说明
- RSAUtils类说明
- SapRfcClient类说明
- SapRfcConfig类说明
- SoapClient类说明
- SoapConfig类说明
- StringUtils类说明
- TextUtils类说明
- XmlUtils类说明
- 自定义后端开发(数据后端)
- 后端服务签名校验开发
- 消息集成开发指导
- 设备集成开发指导
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 公共资源API
- 数据集成API
- 服务集成API
- 消息集成API
- 设备集成API
- 应用示例
- 权限和授权项
- 附录
- 历史API
- 修订记录
- SDK参考
-
常见问题
- 实例管理
-
数据集成
-
数据集成普通任务
- FDI各类数据库支持哪些数据类型?
- 跟踪号是什么,能跟踪到数据吗?
- FDI任务是否支持清空目标表?
- FDI任务只能采集单张表到单张表吗?
- 用户创建的FDI任务,同一账号的其他用户可见吗?
- FDI通过公网对接其他租户的MRS HIVE如何配置?
- 从OBS解析文件到RDS数据库,采集过一次后,后面采集会进行更新吗?
- OBS源端的CSV文件解析到关系型数据库时,列的值不对怎么办?
- MRS Hive目标字段和源端字段数据类型不匹配时,数据是否能集成到目标端?
- MRS Hive、MRS HBase和MongoDB的Mapping映射手动输入时,是否区分大小写?
- MRS Hive是否支持分区?
- 源端API类型数据源自定义周期如何设置?
- SAP是否支持分页读取视图?
- 数据集成组合任务
-
数据集成普通任务
- 服务集成
- 消息集成
- 设备集成
-
故障排除
-
数据集成任务
- MRS Hive目标端写入时出现数据乱码
- MRS Hive写入时数据全部写在第一个字段里
- 目标端任务报任务运行超时
- MySQL到MRS Hive时目标端报“could only be written to 0 of the 1 minReplication nodes. There are 2 datanode(s) running and 2 node(s) are excluded in this operation”错误
- Mysql到Mysql时源端报“Illegal mix of collations for operation 'UNION'”错误
- 源端Mysql增量采集每小时执行一次时部分数据丢失
- API到MySQL时源端报“401 unauthorized”错误
- Kafka集到Mysql目标端报“cannot find record mapping field”错误
- API到MySQL的定时任务时会出现源端报“connect timeout”错误
- Kafka到Mysql的实时任务时,MQS中的Topic下有数据,但是FDI任务没有采集到数据。
- Mysql到Mysql的定时任务,源端有类型为tinyint(1),值为2的字段,但是采集到目标端值就变成了1
- 目标端数据源为公网Kafka时,定时任务目标端报“The task executes failed.Writer data to kafka failed”错误
- 数据集成组合任务
- 数据源
- 服务集成
- 设备集成
-
数据集成任务
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
配置流量控制2.0策略
ROMA Connect支持通过插件策略的方式,为API提供灵活的扩展能力。流量控制2.0策略可限制单位时间内API的被调用次数,保护后端服务。
插件策略和API本身相互独立,只有为API绑定插件策略后,插件策略才对API生效。为API绑定插件策略时需指定发布环境,插件策略只对指定环境上的API生效。
约束与限制
- 同一个API在同一个环境中只能绑定一个相同类型的插件策略,已被API绑定的插件策略无法删除。
- 若API绑定了流量控制策略的同时,也绑定了流量控制2.0策略,则流量控制策略会失效,以绑定的流量控制2.0策略为准。
创建流量控制2.0策略
- 登录ROMA Connect控制台,在“实例”页面单击实例上的“查看控制台”,进入实例控制台。
- 在左侧的导航栏选择“服务集成 APIC > API策略”,在“策略管理”页签下单击“创建策略”。
- 在选择策略类型弹窗中选择“插件策略 > 流量控制2.0”。
- 在配置策略弹窗中配置插件策略信息。
表1 策略配置 参数
说明
策略名称
填写策略的名称,根据规划自定义。建议您按照一定的命名规则填写策略名称,方便您快速识别和查找。
策略类型
固定为“流量控制2.0”。
可见范围
选择策略的可见范围。
- 集成应用:策略归属某个集成应用,仅拥有该集成应用权限的用户可查看和使用该策略。
- 全局:当前实例的所有用户都可查看和使用该策略。
集成应用
仅当“可见范围”选择“集成应用”时需要配置。
选择策略所属的集成应用。若没有可用的集成应用,可单击右侧的“新建集成应用”,创建一个集成应用。
描述
填写策略的描述信息。
策略内容:支持表单模式和脚本模式两种方式,脚本模式配置请参见脚本配置示例。
流控类型
选择流控的类型,推荐使用高性能流控。
- 高精度流控:单位时间内流控没有误差,但高并发场景下实例内部有一定的性能损耗,适用于并发量较小的场景。
- 高性能流控:单位时间内流控偶现较小误差,但高并发场景下实例内部性能损耗较小,适用于并发量较大的场景。
- 单机流控:单位时间内流控存在一定误差值,但高并发场景下实例内部性能损耗最小,适用于并发量更大的场景。
策略基本信息
策略生效范围
选择策略的生效范围。
- 单个API生效:绑定到当前策略的API各自计算流控。
- API共享生效:绑定到当前策略的所有API共同计算流控。
时长
填写流量控制的统计时长,单位可选择“秒”、“分钟”、“小时”和“天”,需与基础流控参数配合使用。
- 与“API流量限制”配合使用,表示单位时间内API被调用的次数上限。
- 与“用户流量限制”配合使用,表示单位时间内的单个用户调用API的次数上限。
- 与“凭据流量限制”配合使用,表示单位时间内的单个凭据调用API的次数上限。
- 与“源IP流量限制”配合使用,表示单位时间内的单个IP地址调用API的次数上限。
基础流控
API流量限制
填写API被调用的次数上限,与“时长”配合使用。
用户流量限制
填写单个用户调用API的次数上限,与“时长”配合使用。参数值不能大于“API流量限制”的值。
凭据流量限制
填写单个凭据调用API的次数上限,与“时长”配合使用。参数值不能大于“API流量限制”的值。
源IP流量限制
填写单个IP地址调用API的次数上限,与“时长”配合使用。参数值不能大于“API流量限制”的值。
参数流控配置
参数流控配置开关。开启后可自定义参数流控策略,API请求优先匹配参数流控策略中的规则和流控,仅当未匹配到参数流控策略时才执行上方配置的基础流控策略。
- 若匹配到参数流控策略,则执行策略内配置的流控。
- 若未匹配到参数流控策略,则执行上方配置的基础流控。
定义参数
定义用于规则匹配的参数。单击“添加参数”,添加用于匹配规则的参数。
- 参数位置:参数在API请求中的位置。
- path:API请求的URI,已默认配置。
- method:API请求方法,已默认配置。
- header:API请求Header参数的第一个值。
说明:
建议不要设置敏感信息,防止泄露。
- query:API请求Query参数的第一个值。
- system:系统参数。
- 参数:用作规则匹配的参数名。
定义规则
参数流控策略的匹配规则和流控配置。单击“添加规则”,可添加规则,系统根据从上到下的顺序匹配规则。
- 规则:单击“
”编辑规则条件表达式。若表达式数量大于等于3个,可通过“转子层级”对表达式进行分层设置。
- =:等于
- !=:不等于
- pattern:正则表达式
- enum:枚举值,多个参数值之间用英文逗号分隔
- API流量限制:填写API被调用的次数上限,与“时长”配合使用。
- 时长:填写流量控制的统计时长,单位可选择“秒”、“分钟”、“小时”和“天”,与“API流量限制”配合使用。
例如,在“定义参数”中添加参数“Host”,参数位置选择“header”;在“定义规则”中添加一条规则,匹配条件设置成“host = www.abc.com”,API流量限制为10,时长为60s。对于请求头域中host参数等于“www.abc.com”的API请求,当60s内API的调用次数达到10,参数流控生效。
特殊流控配置
特殊流控配置开关。开启后可对租户或集成应用进行流量控制。
若基础流控中的“用户流量限制”或“凭据流量限制”与特殊流控配置中的“特殊租户”或“特殊应用”共同作用时,以特殊流控配置为准。
特殊租户
对指定的租户进行流量控制。单击“添加参数”,添加要流控的租户配置。
- 租户ID:填写要绑定该流控策略的租户ID。
- 使用APP认证方式调用API时,租户ID为使用的集成应用所属用户的项目ID。
- 使用IAM认证方式调用API时,租户ID为调用者的账号ID。
您可以单击控制台右上角的用户名,选择“我的凭证”,在我的凭证页面获取用户的项目ID和账号ID。
- 阈值:填写单位时间内,该租户调用API的次数上限。参数值不能大于基础流控中的“API流量限制”值。
特殊应用
对指定的集成应用进行流量控制。单击“添加参数”,添加要流控的集成应用配置。
- 选择应用:选择要进行流控的集成应用。
- 阈值:填写单位时间内,该集成应用调用API的次数上限。参数值不能大于基础流控中的“API流量限制”值。
- 单击“确定”,完成插件策略的创建。
插件策略创建后,您还需要为API绑定插件策略,才能使插件策略对API生效。
脚本配置示例
{ "scope": "basic", "default_interval": 60, "default_time_unit": "second", "api_limit": 100, "app_limit": 50, "user_limit": 50, "ip_limit": 20, "specials": [ { "type": "app", "policies": [ { "key": "e9230d70c749408eb3d1e838850cdd23", "limit": 10 } ] }, { "type": "user", "policies": [ { "key": "878f1b87f71c40a7a15db0998f358bb9", "limit": 10 } ] } ], "algorithm": "counter", "parameters": [ { "id": "3wuj354lpptv0toe0", "value": "reqPath", "type": "path", "name": "reqPath" }, { "id": "53h7e7j11u38l3ocp", "value": "method", "type": "method", "name": "method" }, { "id": "vv502bnb6g40td8u0", "value": "Host", "type": "header", "name": "Host" } ], "rules": [ { "match_regex": "[\"Host\",\"==\",\"www.abc.com\"]", "rule_name": "u8mb", "time_unit": "second", "interval": 2, "limit": 5 } ] }