JMS to Pub/Sub 模板是一种流处理流水线,可从 Active MQ JMS 服务器(队列/主题)中读取消息,并将其写入 Pub/Sub。
流水线要求
- Pub/Sub 输出主题名称必须存在。
- JMS 主机 IP 必须存在,并且 Dataflow 工作器虚拟机具有正确的网络配置,方可访问 JMS 主机。
- 从中提取数据的 JMS 主题/队列必须具有名称。
模板参数
必需参数
- inputName:从中读取数据的 JMS 主题或队列的名称。例如
queue
。 - inputType:要从中读取数据的 JMS 目标类型。可以是队列或主题。例如
queue
。 - outputTopic:要将数据发布到的 Pub/Sub 主题的名称。例如
projects/<PROJECT_ID>/topics/<TOPIC_NAME>
。 - username:用于在 JMS 服务器上进行身份验证的用户名。例如
sampleusername
。 - password:与提供的用户名关联的密码。例如
samplepassword
。
可选参数
- jmsServer:JMS (ActiveMQ) 服务器 IP。例如
tcp://10.0.0.1:61616
。
运行模板
控制台
- 转到 Dataflow 基于模板创建作业页面。 转到“基于模板创建作业”
- 在作业名称字段中,输入唯一的作业名称。
- 可选:对于区域性端点,从下拉菜单中选择一个值。默认区域为
us-central1
。如需查看可以在其中运行 Dataflow 作业的区域列表,请参阅 Dataflow 位置。
- 从 Dataflow 模板下拉菜单中,选择 JMS to Pub/Sub template。
- 在提供的参数字段中,输入您的参数值。
- 点击运行作业。
gcloud
在 shell 或终端中,运行模板:
gcloud dataflow flex-template run JOB_NAME \ --project=YOUR_PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/JMS_to_Cloud_PubSub \ --parameters \ jmsServer=JMS_SERVER,\ inputName=INPUT_NAME,\ inputType=INPUT_TYPE,\ outputTopic=OUTPUT_TOPIC,\ username=USERNAME,\ password=PASSWORD
您必须在此示例中替换以下值:
- 将 YOUR_PROJECT_ID 替换为项目 ID。
- 将 替换为 Dataflow 地区名称。例如:
us-central1
。 - 将 JOB_NAME 替换为您选择的作业名称。作业名称必须与正则表达式
[a-z]([-a-z0-9]{0,38}[a-z0-9])?
匹配才有效。 - 将 JMS_SERVER 替换为 JMS 服务器地址。例如:
tcp://10.0.0.0:61616
- 将 INPUT_NAME 替换为 JMS 服务器输入主题/队列的名称。例如:
testtopic
。 - 将 INPUT_TYPE 替换为 JMS 服务器目标类型(队列/主题)。例如:
topic
- 将 OUTPUT_TOPIC 替换为 Pub/Sub 输出主题的名称。例如:
projects/myproject/topics/testoutput
。 - 将 USERNAME 替换为 JMS 服务器的用户名。例如:
testuser
。 - 将 PASSWORD 替换为与 JMS 服务器使用的用户名对应的密码。
API
如需使用 REST API 来运行模板,请发送 HTTP POST 请求。如需详细了解 API 及其授权范围,请参阅 projects.templates.launch
。
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "jmsServer": "JMS_SERVER", "inputName": "INPUT_NAME", "inputType": "INPUT_TYPE", "outputTopic": "OUTPUT_TOPIC", "username": "USERNAME", "password": "PASSWORD" }, "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/VERSION/flex/JMS_to_Cloud_PubSub", } }
您必须在此示例中替换以下值:
- 将 YOUR_PROJECT_ID 替换为项目 ID。
- 将 替换为 Dataflow 地区名称。例如:
us-central1
。 - 将 JOB_NAME 替换为您选择的作业名称。作业名称必须与正则表达式
[a-z]([-a-z0-9]{0,38}[a-z0-9])?
匹配才有效。 - 将 JMS_SERVER 替换为 JMS 服务器地址。例如:
tcp://10.0.0.0:61616
- 将 INPUT_NAME 替换为 JMS 服务器输入主题/队列的名称。例如:
testtopic
。 - 将 INPUT_TYPE 替换为 JMS 服务器目标类型(队列/主题)。例如:
topic
- 将 OUTPUT_TOPIC 替换为 Pub/Sub 输出主题的名称。例如:
projects/myproject/topics/testoutput
。 - 将 USERNAME 替换为 JMS 服务器的用户名。例如:
testuser
。 - 将 PASSWORD 替换为与 JMS 服务器使用的用户名对应的密码。
后续步骤
- 了解 Dataflow 模板。
- 参阅 Google 提供的模板列表。