NSQ适配GaussDB验证任务心得

举报
yd_229853316 发表于 2024/11/15 16:13:42 2024/11/15
【摘要】 NSQ适配GaussDB 。NSQ是一个开源的实时分布式内存消息队列,由Go语言编写,旨在大规模地处理每天数以十亿计级别的消息。

背景介绍

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

适配思路

  1. 购买 华为云鲲鹏EulerOS环境的ECS 搭建NSQ运行环境
  2. 开发NSQ生产者脚本,使其可以连接GaussDB,并获取源数据
  3. 开发NSQ消费者脚本,使其可以获取生产者发出的源数据并进行消费,模拟生产环境。

适配准备

  1. 华为云鲲鹏EulerOS环境的ECS(华为云购买);
  2. GaussDB数据库(华为云购买);
  3. 开发NSQ生产者/消费者脚本。

2.1 ECS/GaussDB配置

GaussDB:

  • 计费模式选择:按需计费
  • 区域:华北-北京四
  • CPU架构:鲲鹏计算
  • CPU规格:large.2
  • CPU规格:2vCPUs&&4GiB
  • 镜像类型:公共镜像
  • 镜像:openEuler 20.03 64bit with ARM100GiB

鲲鹏ECS:

  • 计费模式选择:按需计费
  • 区域:华北-北京四
  • CPU架构:x86计算
  • CPU规格:xlarge.4
  • CPU规格:4vCPUs&&16GiB
  • 镜像类型:公共镜像
  • 镜像:Huawei Cloud EulerOS 2.0 标准版 64 ARM

2.2 其它

ECS安全组配置 配置规则 → 出/入方向规则 → 一键放通常用端口

也可直接放通所有端口

3 Demo开发

  1. 依赖GaussDB数据库 生产者获取GaussDB的数据提供给消费者消费,模拟生产环境业务场景。

4 适配过程中的问题记录

  • 首次连接GaussDB需要先获取GaussDB的Go语言驱动包,执行下面的命令

         go get gitee.com/opengauss/openGauss-connerctor-go-pq

  • 生产端 发布数据的方法

        p.Publish("testTopic", []byte(id)),[]byte为固定写法 需要转换数据类型, id为从数据库获取的数据 必须为 string 类型,其他类型代码运行会报错。

    • 用100万条数据量测试时候发现由于消费端耗时较长,消费端任务是在后台运行,可重新运行消费端的脚本查看目前消费到的offset。

             

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

    评论(0

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

    全部回复

    上滑加载中

    设置昵称

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

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

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