Temporal 适配 GaussDB 验证任务心得

举报
xiaojiawei 发表于 2024/11/29 19:49:05 2024/11/29
【摘要】 Temporal 一款基于Golang的分布式任务调度框架,具备任务管理、集群管理、编程能力和Web界面管理功能,帮助开发者简化分布式系统的开发,支持多种编程语言。

背景介绍

开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/)  通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。

1 软件介绍

Temporal 一款基于Golang的分布式任务调度框架,具备任务管理、集群管理、编程能力和Web界面管理功能,帮助开发者简化分布式系统的开发,支持多种编程语言。

核心功能

  • 可靠的任务执行:帮助开发者构建可扩展的应用程序,在面对各种复杂情况如系统故障时,仍能保证任务的可靠执行。它简化了错误处理和重试机制,开发者无需编写大量复杂的容错和错误处理逻辑,从而提高了开发效率。
  • 工作流编排:支持定义复杂的工作流,将业务流程中的多个步骤按照特定的顺序和逻辑进行编排。工作流中的每个步骤可以是一个具体的业务操作或任务,Temporal 能够有效地管理和协调这些步骤的执行,确保整个工作流的顺利进行。
  • 状态管理与持久化:完整地维护应用程序的状态信息,使得在系统出现故障或异常情况后,能够快速恢复到之前的执行状态,保证数据的一致性和完整性。

架构图

图片1.png

适配思路

鲲鹏EulerOS环境的ECS上部署Temporal Service,并执行基于Python开发的Temporal Demo,最终实现在GaussDB里面创建测试表并进行表数据的增删改查。

适配准备

准备两个弹性云服务器ECS,一个用于代码编写以及适配测试,另外一个用于鲲鹏EulerOS环境的部署以及适配GaussDB测试。

3.1 ECS配置

适配测试:

  • 计费模式选择:按需计费
  • 区域:中国-香港
  • CPU架构:x86计算
  • CPU规格:c6.xlarge.4
  • CPU规格:4vCPUs&&16GiB
  • 镜像类型:公共镜像
  • 镜像:Windows Server 2016 标准版 64位简体中文_40GB_香港

鲲鹏:

  • 计费模式选择:按需计费
  • 区域:中国-香港
  • CPU架构:鲲鹏计算
  • CPU规格:kc1.xlarge.2
  • CPU规格:4vCPUs&&8GiB
  • 镜像类型:公共镜像
  • 镜像:Huawei Cloud EulerOS 2.0 标准版 64 ARM

3.2 ECS安全组配置

配置规则 → 入方向规则 → 一键放通常用端口

添加常用端口,目的:在适配测试的ECS可以ping通部署Temporal Service的云服务器

3.3 Temporal环境部署

docker安装(使用docker运行Temporal服务

参考:https://bbs.huaweicloud.com/blogs/380605

手动配置国内镜像:https://blog.csdn.net/u011397981/article/details/130616038  或者  https://blog.csdn.net/qq_41885266/article/details/114872760

docker-compose安装

参考:https://blog.csdn.net/qq_26840065/article/details/123839642

4 Demo开发

  1. 下载docker-compose.yml配置文件,并修改里面相关镜像的具体版本
  2. 在配置文件所在的文件夹运行docker-compose up -d启动Temporal Service
  3. 根据官网参考文档,编写demo程序以及添加相关的数据库配置文件
  4. 执行demo主函数

docker-compose.yml配置文件及镜像版本参考:https://gitcode.com/xiaojiawei/opensource-demo-temporal-241129/blob/master/docker-compose.yml

demo路径:https://gitcode.com/xiaojiawei/opensource-demo-temporal-241129/overview

官网文档:https://learn.temporal.io/tutorials/python/build-a-data-pipeline/

5 适配过程中的问题

  •  安装或调用docker-compose时,报错:/usr/local/bin/docker-compose: line 1: Not: command not found

          解决方法:https://blog.csdn.net/Chrouos/article/details/133502649

  • 运行docker-compose up -d下载镜像时,下载失败

         解决方法:使用香港、国外的鲲鹏EulerOS环境进行部署或者使用VPN技术进行下载

  • 下载官方的docker-compose.yml配置文件时,直接运行报错

         解决方法:需要手动修改配置文件内的镜像版本,参考:https://gitcode.com/xiaojiawei/opensource-demo-temporal-241129/blob/master/docker-compose.yml


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。