更新时间:2022-02-21 GMT+08:00

Lua SDK

本节以Linux系统为例介绍Lua客户端如何连接DMS服务的Kafka队列,获取相关配置信息请参考准备环境章节。

DMS服务兼容Kafka原生API,相关调用方法请参考Kafka官网说明

客户端环境搭建

  1. 下载SDK包

    解压后获取kafka-dms-lua.tar.gz文件。

  2. 安装luajit工具。

    执行如下命令检查是否有luajit工具。

    luajit -v

    如果没有luajit,需要安装luajit。
    • ubuntu操作系统:
      • 执行apt-cache search luajit命令检查软件仓库中是否有luajit。如没有,请自行配置软件仓库的地址。
      • 执行apt-get install luajit命令安装luajit。
    • suse操作系统:
      • 执行zypper search luajit命令检查软件仓库中是否有luajit。如没有,请自行配置软件仓库的地址。
      • 执行zypper install luajit命令安装luajit。
    • centos/redhat操作系统:
      • yum search luajit
      • yum install luajit

  3. 解压缩kafka-dms-lua.tar.gz

    以下假设解压目录为{DMSPATH}。

  4. 拷贝kafka依赖到本地的lib库中。

    cp {DMSPATH}/kafka-dms-lua/librdkafka/lib/* /usr/lib/ -R

  5. 修改example_dms.lua中的配置参数。

    cd {DMSPATH}/kafka-dmslua/luadms

    vi example_dms.lua

    修改如下配置项:

    local BROKERS_ADDRESS = { "broker" }
    local TOPIC_NAME = "your kafka topic"
    
    config["sasl.project.id"]="your projectId"
    config["sasl.access.key"]="your ak"
    config["sasl.security.key"]="your sk"
    表1 参数说明

    参数

    说明

    获取方式

    BROKERS_ADDRESS

    配置为Kafka的endpoint地址。

    请参考准备环境

    TOPIC_NAME

    配置为Kafka Topic的id。

    sasl.project.id

    项目ID。

    sasl.access.key

    租户AK。

    security.key

    租户SK。

运行示例

执行如下命令进行生产消息。

luajit example_dms.lua

说明:该示例命令将会自动发送10条消息到Kafka队列中。

示例代码

生产消息

for i = 0,10 do
    producer:produce(topic, KAFKA_PARTITION_UA, "this is test message"..tostring(i))
end

while producer:outq_len() ~= 0 do
    producer:poll(10)
end