ubuntu下安装和测试kuiper

前言:

软件介绍

kuiper:负责收消息、处理并显示或者保存
mosquitto:服务器,
mosquitto client:代理,负责发消息

本文背景:

本文是为了实现kuiper安装和测试,实现mosquitto发送消息,kuiper收到处理消息,类似于教程:https://blog.csdn.net/emqx_broker/article/details/103181634。但是本文包括了更多基本软件的安装教程,更加基础,但有的地方还是没有教程详细,所以还是可以参看教程。

背景介绍:

看上面的教程

1、Ubuntu 18.04安装MQTT Mosquitto

教程:https://blog.csdn.net/jsjwr/article/details/78800202

在这之前建议把服务器改为阿里镜像,可以大大加快下载速度。
更改镜像:

  1. 打开桌面的“软件与更新”软件
  2. 下载自-其他站点-mirror.aliyun.com
  3. 点击关闭,确定

1. 安装mosquitto:

1.引入mosquitto仓库并更新

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update

2.执行以下命令安装mosquitto

sudo apt-get install mosquitto

3.查看mosquitto服务状态

sudo service mosquitto status 

4.开启/停止mosquitto服务

sudo service mosquitto start
sudo service mosquitto stop

5.下载mosquitto client

sudo apt install mosquitto-clients

2. 测试

打开一个终端,接收

mosquitto_sub -h localhost -t "mqtt" -v

打开另一个终端,发布主题


mosquitto_pub -h localhost -t "mqtt" -m "Hello2 MQTT"

测试成功!

2、kuiper安装

安装:

官网下载,解压。https://github.com/emqx/kuiper/releases




开始实验

代码解释请看教程
详细的kuiper参数意义教程:https://blog.csdn.net/emqx_broker/article/details/103181634

启动kuiper

新建终端输入

# 启动
bin/server
# 创建流,订阅的主题为 `devices/+/messages`,`+`是通配符,所有相当于一次订阅了多个主题。
bin/cli create stream demo '(temperature float, humidity bigint) WITH (FORMAT="JSON", DATASOURCE="devices/+/messages")'

调试流

新建终端,输入

# 调试
bin/cli query

接着输入

SELECT avg(temperature) AS t_av, max(temperature) AS t_max, min(temperature) AS t_min, COUNT(*) As t_count, split_value(mqtt(topic), "/", 1) AS device_id FROM demo GROUP BY device_id, TUMBLINGWINDOW(ss, 10)

其中:
mqtt:消息中取出 MQTT 协议的信息,mqtt(topic) 就是取得当前取得消息的主题名称
split_value:该函数将第一个参数使用第二个参数进行分割,然后第三个参数指定下标,取得分割后的值。所以函数 split_value("devices/001/messages", "/", 1)调用就返回001
GROUP BY 跟的是分组的字段,分别为计算字段 device_id;时间窗口 TUMBLINGWINDOW(ss, 10),该时间窗口的含义为每10秒钟生成一批统计数据。

发送测试数据

新建终端,输入如:

mosquitto_pub -h localhost -t "devices/1/messages" -m "{\"temperature\":30,\"humidity\" :70}"
# 或者
mosquitto_pub -h 127.0.0.1 -p 1883 -t "devices/2/messages" -m ‘{"temperature":20,"humidity" :50}

在kuiper终端就会每10秒刷新一次数据。统计过去10s内收到的消息数,最大最小温度
在这里插入图片描述






注意事项

  • 数据源所对应的 MQTT 服务器地址在配置文件 etc/mqtt_source.yaml
  • bin/cli连接本地服务器,cli 命令也可以连接到别的 Kuiper 服务器,用户可以在 etc/client.yaml配置文件中修改连接的 Kuiper 服务器。
  • 发送测试数据时,用反斜杠转义双引号。

参考链接

kuiper快速开始教程:https://github.com/emqx/kuiper/blob/master/docs/zh_CN/getting_started.md
EMQ X Kuiper 与 Azure IoT Hub 集成方案:https://www.jianshu.com/p/49b06751355f
emqx官网:https://docs.emqx.io/docs/broker/v3/cn/

几个问题:

  1. mosquitto发给的的是端口1883,kuiper接收的好像是20498,为什么端口不同也可以收到消息呢?
发布了25 篇原创文章 · 获赞 0 · 访问量 428

猜你喜欢

转载自blog.csdn.net/longzu233/article/details/104470744