华为云ROMA Connect应用与数据集成平台对接使用全攻略
一、初识ROMA Connect:企业数字化转型的集成枢纽
企业在数字化转型过程中,常常面临系统林立、数据孤岛、接口不统一等棘手问题。不同的业务系统使用不同的数据格式、不同的通信协议,彼此之间难以高效协同。华为云应用与数据集成平台ROMA Connect正是为解决这些痛点而生的全栈式集成服务平台。
ROMA Connect源自华为自身的数字化转型集成实践,经过多年的内部打磨和外部验证,已经成为一套成熟、稳定、功能强大的集成解决方案。它聚焦应用和数据连接,提供轻量化的消息、数据、API、设备等集成能力,帮助企业简化上云流程,支持云上云下、跨区域集成,真正消除数字鸿沟。
从产品架构上看,ROMA Connect主要包含五大核心组件:
- 数据集成FDI(Fast Data Integration):负责不同类型数据源之间的灵活、快速、无侵入式数据集成。
- 服务集成APIC(API Connect):将数据和后端服务以标准RESTful API形式开放,降低系统间对接成本。
- 消息集成MQS(Message Queue Service):提供统一的消息接入机制,构建跨网络访问的安全、标准化消息通道。
- 设备集成LINK:通过MQTT等多种协议连接各类设备与企业后台,实现双向通信。
- 组合应用:对各种触发器、连接器、处理器进行编排和组合,实现业务快速复制创新。
理解这五大组件,就相当于拿到了使用ROMA Connect的"地图"。不同的集成场景,对应不同的组件组合。下文将逐一深入讲解每个组件的对接使用方法。
二、开始之前:创建实例与集成应用
在使用ROMA Connect的任何功能之前,首先需要完成实例创建和集成应用配置这两个前置步骤。
2.1 创建ROMA Connect实例
ROMA Connect实例是承载所有集成资源的运行环境。登录华为云控制台后,在服务列表中找到"应用与数据集成平台 ROMA Connect",进入服务控制台,单击"购买实例"或"创建实例"。
创建实例时需要注意以下几点:
- 规格选择:根据实际业务量选择合适的实例规格,包括RCU(ROMA Compute Unit)数量。RCU是ROMA Connect的计算资源单元,直接影响实例的处理能力。
- 网络配置:实例需要归属到某个VPC(虚拟私有云)中。实例创建后VPC和子网不可修改,因此需要提前规划好网络拓扑。
- 安全访问控制:可以为实例配置私网IP和公网IP的白名单,只允许可信IP访问实例,保障网络安全。
创建完成后,在实例列表中可以看到新创建的实例,单击实例名称或"查看控制台"即可进入实例控制台进行操作。
2.2 创建集成应用
集成应用是ROMA Connect中实现资源隔离和权限管理的基本单位。实例中的所有资源——包括数据源、API、Topic、产品等——都必须归属到某个集成应用下。
创建集成应用的步骤非常简单:在实例控制台的左侧导航栏选择"集成应用",单击"创建集成应用",填写名称和描述即可。
集成应用的一个重要价值在于权限隔离:IAM用户默认只能查看和管理自己创建的集成应用和资源,主账号可以查看和管理所有资源。如果需要跨用户共享资源,可以通过将集成应用授权给其他IAM用户的方式实现。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
三、数据集成FDI:打通异构数据源
数据集成是ROMA Connect最核心的能力之一。FDI组件支持文本、消息、API、关系型数据库、非关系型数据库等多种数据源之间的灵活转换。无论是MySQL到Oracle的数据同步,还是API数据到Kafka的流式写入,FDI都能胜任。
3.1 接入数据源
创建数据集成任务的第一步是接入数据源。ROMA Connect支持的数据源类型非常丰富,包括MySQL、PostgreSQL、SQL Server、Oracle、GaussDB、Hive、HBase、Kafka、RocketMQ、API、OBS等。
以接入MySQL数据源为例,操作步骤如下:
- 在实例控制台左侧导航栏选择"数据源管理",单击"接入数据源"。
- 在接入数据源页面选择"MySQL"类型,单击"下一步"。
- 配置数据源连接信息,包括主机地址、端口、数据库名称、用户名、密码等。
- 单击"开始检测",测试ROMA Connect与数据源之间的网络连通性。
- 检测通过后,单击"确定"完成数据源接入。
接入数据源时,需要确保ROMA Connect实例与数据源所在网络互通。如果两者在同一VPC内,可以直接访问;如果在不同VPC,需要通过VPC对等连接或云连接服务打通网络;如果通过公网访问,则需要为ROMA Connect实例绑定弹性IP。
通过API方式接入数据源的示例代码如下:
POST /v2/{project_id}/fdi/instances/{instance_id}/datasources
{
"datasource_name": "fdi_ds_mysql",
"datasource_type": "MYSQL",
"content": {
"host": "10.10.10.10",
"port": "3306",
"database_name": "romatest",
"user_name": "romatest",
"password": "******",
"mode": "default"
},
"app_id": "xxxxxx",
"description": "test"
}响应中返回的datasource_id即为数据源ID,需要保存下来供后续步骤使用。
3.2 创建数据集成任务
数据源接入完成后,就可以创建数据集成任务了。ROMA Connect支持三种类型的集成任务:
- 普通任务:支持定时和实时两种集成模式,适用于单数据表到单数据表的集成场景。
- 组合任务:通过CDC(数据变更抓取)实现实时同步及增量同步,支持一个源端多个数据表到一个目标端多个数据表的同步。
- 编排任务:通过可视化拖拽方式创建任务,支持1:N的数据采集场景,降低开发门槛。
创建普通任务的步骤如下:
- 在左侧导航栏选择"数据集成 FDI > 任务管理",单击"创建普通任务"。
- 配置任务基本信息,包括任务名称、集成模式(定时或实时)、描述等。
- 如果选择定时模式,配置任务计划(执行周期)。
- 配置源端信息,选择已接入的源数据源,指定要同步的数据表或数据集合。
- 配置目标端信息,选择目标数据源,指定目标数据表。
- 配置Mapping映射规则,建立源端字段到目标端字段的对应关系。ROMA Connect支持自动配置和手动配置两种映射方式,也支持通过JavaScript脚本实现复杂的数据转换逻辑。
- 保存任务并启动。
- 实时增量集成:适用于需要实时监控数据变化的场景,如生产线设备参数采集。
- 实时全量集成:适用于需要实时监控所有历史数据的场景,如供应商出货量统计。
- 定时增量集成:适用于监控一段时间内数据变化的场景,如生产效率验证。
- 定时全量集成:适用于监控一段时间内所有历史数据的场景,如高峰期内车辆出入统计。
- 在实例控制台左侧导航栏选择"服务集成 APIC > API分组"。
- 单击"创建API分组 > 直接创建"。
- 填写分组名称,选择可见范围(推荐选择"集成应用"),关联已有的集成应用。
- 在"服务集成 APIC > API列表"中单击"创建API"。
- 配置前端请求信息,包括API名称、所属分组、请求方法(GET/POST/PUT/DELETE等)、请求协议(推荐HTTPS)、请求路径等。
- 配置后端服务信息,包括后端服务类型(HTTP/HTTPS、FunctionGraph、MOCK等)、后端地址、超时时间等。
- 配置安全认证方式。
- 保存并发布API。
- APP认证(推荐):使用集成应用的Key和Secret进行签名认证。调用API时,客户端需要在请求中携带签名信息,ROMA Connect验证通过后才允许访问。这种认证方式安全性高,适合生产环境。
- IAM认证:使用华为云IAM(统一身份认证)服务的Token进行认证,适合已经使用华为云账号体系的场景。
- 无认证:不进行任何认证,仅适合测试环境或内部网络。
- 自定义认证:如果企业有自己的认证系统,可以通过自定义认证将ROMA Connect的认证与企业现有认证体系对接。
- 在左侧导航栏选择"服务集成 APIC > 自定义后端"。
- 单击"创建后端",选择后端类型(数据后端或函数后端)。
- 在线编辑代码,实现业务逻辑。
- 保存并发布后端,发布后即可作为API的后端服务被调用。
- 在实例控制台左侧导航栏选择"消息集成 MQS > Topic管理"。
- 单击"创建Topic"。
- 配置Topic信息:
- Topic名称:注意不能以"."和"_"区分不同名称,例如先创建"Topic.test"再创建"Topic_test"会失败。
- 集成应用:选择Topic所属的集成应用。
- 权限:可选择"发布+订阅"、仅"发布"或仅"订阅"。
- 分区数:影响消息生产与消费的并发性能,分区数越多并发能力越强。
- 副本数:决定可靠性,建议至少2副本,单副本在节点故障时可能出现问题。
- 老化时间:消息在Topic中的最大保存时间,超时自动删除。
- 单击"确定"完成创建。
- MQS连接地址:在实例控制台的"实例信息"页面查看,分为内网地址和公网地址。
- Kafka版本信息:同样在"实例信息"页面查看。
- 如果启用了SASL_SSL,需要下载SSL证书。
- 定义产品模型:在ROMA Connect中定义产品的属性、命令和事件,描述设备的数据格式和行为。
- 注册设备:在产品下注册具体的设备实例,生成设备标识和密钥。
- 设备接入:设备通过MQTT协议连接到ROMA Connect,使用设备标识和密钥进行认证。
- 数据上报:设备将采集的数据通过MQTT消息上报到ROMA Connect,可以转发到MQS Topic或触发数据集成任务。
- 指令下发:云端通过ROMA Connect向设备下发控制指令。
- 在ROMA Connect控制台左侧导航栏选择"组合应用"。
- 单击"新建组合应用",可以选择空模板从零开始,也可以选择预置模板快速构建。
- 在画布上拖拽组件进行编排。每个工作流的起始节点必须是触发器,如Open API触发器、定时器、Kafka消费者等。
- 配置每个组件的参数,如Open API触发器的请求方法和路径、HTTP响应的响应体和状态码等。
- 保存并发布组合应用。
- 任务监控:在数据集成FDI的任务管理页面,可以查看每个任务的执行状态、执行时间、处理数据量等指标。
- API监控:在服务集成APIC中,可以查看API的调用次数、响应时间、错误率等统计信息。
- 流量控制:通过配置流量控制策略,限制API的请求频率,防止恶意调用或突发流量冲击。流量控制的时间单位可以是秒、分钟、小时或天。
- 告警配置:可以配置告警规则,当任务失败、API调用异常或资源使用率超阈值时触发告警通知。
在Mapping配置中,如果源端和目标端的字段结构不一致,可以通过映射规则进行转换。例如,源端字段名为"user_name",目标端字段名为"username",只需在映射配置中将两者关联即可。对于更复杂的转换逻辑,可以使用脚本模式,编写JavaScript代码实现数据清洗、格式转换、字段计算等操作。
FDI支持四种数据集成方式,分别适用于不同的业务场景:
任务创建后,可以在任务管理页面查看任务的运行状态、运行报告和运行日志。如果任务执行失败,FDI支持自动修复和断点续传。此外,还可以配置异常数据存储,将同步失败的数据记录到OBS中以便后续排查。
四、服务集成APIC:API全生命周期管理
服务集成APIC是ROMA Connect的API集成组件,其核心价值在于将数据和后端服务以标准RESTful API的形式开放出来,简化企业间、系统间的对接过程。APIC提供了从API创建、发布、调试到下线、删除的完整生命周期管理功能。
4.1 创建API分组与API
每个开放的API都需要归属到某个API分组下。API分组是同一类业务API的逻辑集合,便于统一管理和授权。
创建API分组的步骤:
创建API的步骤:
4.2 API安全认证配置
API的安全性是系统集成的重中之重。ROMA Connect提供了多种认证方式,推荐使用APP认证或IAM认证:
对于APP认证方式,调用方需要获取集成应用的AppKey和AppSecret。在API授权配置中,将API授权给指定的凭据(即集成应用),调用时使用凭据的Key和Secret进行安全认证。
Python SDK调用API的示例代码如下:
import requests
import hashlib
import hmac
import time
# 配置信息
app_key = "your_app_key"
app_secret = "your_app_secret"
api_url = "https://{instance_id}.apic.{region}.huaweicloud.com/api/test"
# 构造签名
def sign_request(key, secret, method, url, body=""):
timestamp = str(int(time.time()))
string_to_sign = f"{method}\n{url}\n{timestamp}\n{body}"
signature = hmac.new(secret.encode(), string_to_sign.encode(), hashlib.sha256).hexdigest()
return {
"X-Apig-AppKey": key,
"X-Apig-Timestamp": timestamp,
"X-Apig-Signature": signature
}
# 调用API
headers = sign_request(app_key, app_secret, "GET", api_url)
response = requests.get(api_url, headers=headers)
print(response.json())4.3 负载通道与API级联
当后端服务部署在多个服务器上时,可以通过负载通道实现负载均衡。ROMA Connect的负载通道可以直接访问同一VPC内的弹性云服务器,也可以通过IP访问其他VPC内的服务器。将多台后端服务器添加到负载通道后,APIC在转发请求时会自动进行负载分配。
对于大型企业的多区域、多实例部署场景,ROMA Connect还支持API级联功能。通过API级联,可以将不同区域的ROMA Connect实例的API串联起来,实现跨实例的API调用。例如,子公司A和子公司B的ROMA Connect实例通过API级联到公司总部的ROMA Connect实例,总部实例作为业务开放中台,统一对外提供数字资产。
4.4 自定义后端开发
除了将现有后端服务封装为API,ROMA Connect还支持在平台内直接开发自定义后端。自定义后端实际上是一个函数,可以在线编写JavaScript或Python代码,实现数据处理、业务逻辑编排等功能。
创建自定义后端的步骤:
自定义后端的一个典型应用场景是前端自定义认证。企业可以将自己的认证逻辑编写为自定义后端,然后在API的认证配置中引用该后端,实现与企业现有认证体系的对接。
五、消息集成MQS:构建统一消息通道
消息集成MQS是ROMA Connect的消息集成组件,基于Apache Kafka构建,提供统一的消息接入机制。MQS支持原生Kafka特性,兼容Kafka协议,因此任何支持Kafka的客户端都可以直接与MQS对接。
5.1 创建Topic
Topic是消息集成的核心概念,相当于消息的"分类标签"。生产方将消息发布到Topic,消费方从Topic订阅消息。
创建Topic的步骤:
5.2 连接MQS收发消息
Topic创建完成后,就可以通过Kafka客户端连接MQS进行消息的生产和消费了。
连接MQS前需要准备以下信息:
使用命令行连接MQS的示例(Linux系统):
# 1. 解压Kafka命令行工具
tar -zxf kafka_2.12-{version}.tgz
cd kafka_2.12-{version}
# 2. 下载并解压SSL证书(如果启用了SASL_SSL)
unzip mqs-cert.zip
# 3. 修改consumer.properties配置文件,添加SASL认证信息
# 在/config/consumer.properties中增加:
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="集成应用的Key" \
password="集成应用的Secret"
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
ssl.truststore.location=/path/to/client.truststore.jks
ssl.truststore.password=dms@kafka
ssl.endpoint.identification.algorithm=
# 4. 生产消息
bin/kafka-console-producer.sh \
--broker-list {MQS连接地址} \
--topic {Topic名称} \
--producer.config config/producer.properties
# 5. 消费消息
bin/kafka-console-consumer.sh \
--bootstrap-server {MQS连接地址} \
--topic {Topic名称} \
--from-beginning \
--consumer.config config/consumer.properties使用Java客户端连接MQS的示例:
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;
public class MQSProducer {
public static void main(String[] args) {
Properties props = new Properties();
props.put("bootstrap.servers", "{MQS连接地址}");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
// 如果启用了SASL_SSL
props.put("security.protocol", "SASL_SSL");
props.put("sasl.mechanism", "PLAIN");
props.put("sasl.jaas.config",
"org.apache.kafka.common.security.plain.PlainLoginModule required " +
"username=\"{集成应用Key}\" " +
"password=\"{集成应用Secret}\";");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<>("{Topic名称}", "Hello ROMA Connect MQS"));
producer.close();
}
}需要注意的是,如果ROMA Connect实例开启了MQS SASL_SSL的同时也开启了VPC内网明文访问,则VPC内无法使用SASL方式连接。此外,建议在客户端主机的/etc/hosts文件中配置host和IP的映射关系,避免引入额外的网络时延。
六、设备集成LINK:连接万物
设备集成LINK是ROMA Connect面向IoT场景的组件,支持通过MQTT等多种协议连接各类设备与企业后台。LINK在云端定义设备模型和注册设备,设备通过集成SDK接入云端,实现设备数据的上报和指令的下发。
设备集成的核心流程:
在传统停车场管理系统数字化改造等场景中,设备集成LINK发挥着关键作用。通过LINK,停车场道闸、地磁传感器、车牌识别摄像头等设备的数据可以统一接入ROMA Connect,再通过数据集成FDI将数据同步到业务系统,实现车辆进出、计费、停车位状态的智能化管理。
七、组合应用:低代码集成编排
组合应用是ROMA Connect面向低代码集成场景提供的能力。通过组合应用,用户可以在可视化画布上对各种触发器、连接器、处理器进行拖拽编排,快速构建集成流。组合应用特别适合业务人员或经验较少的开发者快速实现集成需求。
创建组合应用的基本流程:
一个典型的组合应用示例是:通过Open API触发器暴露一个HTTP接口,接口被调用时触发后续流程,最终通过HTTP响应返回结果。这种模式可用于快速构建轻量级的API服务,而无需编写完整的后端代码。
八、安全最佳实践
安全性是使用任何云服务时都需要高度重视的方面。以下是在使用ROMA Connect过程中应遵循的安全最佳实践。
8.1 网络访问控制
实例创建时选择正确的VPC网络。创建成功后,通过配置私网IP和公网IP的白名单,只允许可信IP访问实例。对于生产环境,建议仅开放私网访问,通过VPC对等连接或云专线实现与外部网络的互通。
8.2 API安全配置
API的请求协议推荐使用HTTPS,确保数据传输通道加密。安全认证推荐使用APP认证或IAM认证,避免使用无认证方式。对于敏感信息(如密码、密钥),在组合应用的自定义变量中应设置为"密码"类型,确保加密存储。
8.3 MQS安全配置
MQS推荐启用SASL_SSL,实现消息传输的加密和认证。SASL鉴权方式推荐使用SCRAM-SHA-512或SCRAM-SHA-256,安全性高于PLAIN。客户端连接MQS时,应使用SSL证书进行服务端认证。
8.4 权限最小化原则
遵循权限最小化原则,为不同的用户和集成应用分配最小必要的权限。通过集成应用的授权机制,精确控制每个应用可以访问的资源和可以执行的操作。
九、监控告警与运维管理
ROMA Connect提供了完善的监控告警能力,帮助运维人员及时发现问题并采取措施。
对于数据量较大的同步场景,需要注意任务调度的时间安排。如果上一次调度尚未执行完成而下一次调度时间已到,ROMA Connect会暂停新的调度,等待上一次执行完成。
十、常见问题解答
Q1:ROMA Connect实例与数据源不在同一个VPC中,如何连通?
如果实例与数据源在同一区域的不同VPC,可以通过创建VPC对等连接打通网络。如果在不同区域,可以通过云连接服务实现跨区域VPC互通。如果通过公网访问,需要为ROMA Connect实例绑定弹性IP。
Q2:API调用时返回认证失败,该如何排查?
首先确认API的认证方式配置是否正确。如果是APP认证,检查调用时使用的AppKey和AppSecret是否与API授权的一致。如果是IAM认证,检查Token是否有效。还可以在API的调试页面进行测试,验证配置是否正确。
Q3:MQS消息生产和消费时连接失败,可能是什么原因?
常见原因包括:网络不通(检查MQS连接地址是否正确,网络是否可达);认证信息错误(检查集成应用的Key和Secret是否正确);SSL证书未正确配置(如果启用了SASL_SSL,需要下载并配置证书);Topic权限不足(检查集成应用对Topic的权限是否为"发布"或"发布+订阅")。
Q4:数据集成任务执行失败,如何定位问题?
首先查看任务的运行日志和运行报告。日志中会记录详细的错误信息,如连接超时、数据格式不匹配、权限不足等。如果配置了异常数据存储,可以查看OBS中的异常记录。此外,可以通过"开始检测"功能测试数据源的连通性。
Q5:ROMA Connect支持哪些数据源类型?
ROMA Connect支持关系型数据库(MySQL、PostgreSQL、SQL Server、Oracle、GaussDB等)、大数据存储(Hive、HBase等)、半结构化存储、消息系统(Kafka、RocketMQ等)、API、OBS等多种数据源类型。如果默认支持的数据源无法满足需求,还可以通过自定义连接器的方式接入特殊数据源。
Q6:如何降低ROMA Connect的使用成本?
ROMA Connect按RCU时计费,合理规划实例规格可以避免资源浪费。在业务量较小时可以选择较小规格,随着业务增长再升级规格。对于数据集成任务,合理设置同步周期和增量同步策略,避免全量同步带来的资源消耗。消息集成中,合理设置消息的老化时间和分区数,避免过度占用存储资源。



