Coder Social home page Coder Social logo

mqttsnet / thinglinks Goto Github PK

View Code? Open in Web Editor NEW
587.0 30.0 193.0 23.9 MB

a high-performance, high-throughput, and highly scalable IoT platform! A single instance can support millions of connections. It offers powerful custom extension capabilities. Built with Netty as the communication layer component, it supports plugin-based development and integration!

Home Page: http://www.mqttsnet.com

License: Other

JavaScript 5.50% Batchfile 0.13% HTML 1.30% Vue 31.00% SCSS 0.62% Java 61.16% Shell 0.15% Dockerfile 0.14%
vue java mqtt iot reactor3 netty springcloud

thinglinks's Introduction

MQTTSNET Logo

ThingLinks | 中文文档

Introduction to ThingLinks Platform

This system utilizes the Spring Cloud microservice architecture, providing a high-performance, high-throughput, highly-scalable IoT platform. On a single server, it can support millions of connections. Additionally, it boasts customizable extension features for various protocol interactions and supports plug-in development.

OSCS Status

Tech Stack

1、Adopts a front-end and back-end separation approach using the VUE framework for the frontend.

2、The backend utilizes Spring Boot, Spring Cloud & Alibaba.

3、MqttBroker (supports cluster deployment) is based on Netty, Reactor3, Reactor-netty.

4、The registration center and configuration center are based on Nacos while authentication uses Redis.

5、The traffic control framework is Sentinel and distributed transactions are managed by Seata.

6、The time-series database used is TDengine, an efficient open-source IoT big data platform, capable of handling massive IoT data write-ins and load queries.

Core Features

Unified product model management, supporting various devices from different manufacturers.

Unified device connection management with multi-protocol adaptability (MQTT, WebSocket, TCP, UDP, CoAP, HTTP, etc).

A flexible rule engine for device alarms, message notifications, and data forwarding. Device geographic location visualization.

TDengine time-series database design concept: one table per device, one super-table per device type.

Documentation

Overall Platform Architecture

Functional Architecture

Core Function List

System Management: User Management, Role Management, Menu Management, Department Management, Post Management, Dictionary Management, Parameter Settings, Notifications, Log Management

System Monitoring: Online Users, Scheduled Tasks, Sentinel Console, Nacos Console, Admin Console, Task Scheduling Management

System Tools: Form Builder, Code Generator, System API

Device Integration: Device Management (supports MQTT, WebSocket, and TCP-IP protocols), Sub-device Management, Product Management, Protocol Management, Rule Engine (for device interlinking)

Device Debugging: Real-time Logs, Command Issuance

Rule Engine Message Forwarding: Supports KAFKA, HTTP, PREDICATE, ROCKET_MQ, RABBIT_MQ, MYSQL, MQTT, TOPIC, and LOG nodes.

Development Roadmap

We are currently focused on the development of the Pro version, with the open-source version lagging behind. Gradual open-sourcing will be done in the future. Stay tuned!

*、Rule engine-device interlinking (development completed, lacking alarm information configuration)

*、APP mobile side-My Devices (in progress)

*、Alarm management (planning: DingTalk push, email push, etc.)

*、Large screen display (client, message publish/subscribe, alarms) (in planning)

Demo Images

Business Cooperation & Code Contribution

If you're interested in participating in project development or engaging in business cooperation, please contact the mqttsnet team at [email protected].

Contributors

Thanks these wonderful people, welcome to join us:
贡献者指南

xiaonannet
xiaonannet

💻 📖 🎨🐛
lovely-shisen
lovely-shisen

💻 📖 🎨
wanghoubang
whb-11

💻 📖🎨
kangkaime
kangkaime

💻 🐛
lvwshuai
lvwshuai

💻
andyz168
andyz168

💻
llJam
llJam

💻
qianmenfei
qianmenfei

💻

Related Links

BifroMQ is a high-performance MQTT messaging middleware with a native multi-tenant architecture. Open-sourced by Baidu.

High-efficiency MQTT Broker: SMQTTX

Issues (Feedback is appreciated)

issues

Submit a PR

pr->feat/contrbute

License

Apache License, Version 2.0

Thanks to JetBrains for providing a free IDEA License

Copyright Notice

ThingLinks Open Source Platform adheres to the Apache License, Version 2.0. Commercial use is allowed, but it's imperative to retain attribution and copyright information.

thinglinks's People

Contributors

andyz168 avatar anlworke avatar kangkaime avatar lljam avatar lovely-shisen avatar lvwshuai avatar qianmenfei avatar whb-11 avatar wuzhong290 avatar xiaonannet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thinglinks's Issues

tdengine 模块 根据时间戳查询数据(/getDataByTimestamp)返回ts时间戳报错

发送POST请求
POST http://localhost:9204/dataOperation/getDataByTimestamp
Content-Type: application/json

{
"databaseName":"demo",
"tableName":"weather",
"fieldName": "ts",
"startTime": 1649747956000,
"endTime": 1649834356000
}

返回错误码
{
"msg": "Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: com.alibaba.fastjson.JSONArray.getTimestamp(I)Ljava/sql/Timestamp;",
"code": 500
}

如果 更改 xml文件 取消掉 ts的返回值,就可以进行正常返回。问题就出在查询结束后 ts 时间戳的返回值问题上。

TDengine3.0兼容问题(创建超级表失败)

TDengine3.0创建超级表时列名不能带,【''】单引号。eg:
创建失败
create STABLE if not exists thinglinks.GATEWAY_fe6fa6f1f63746adbd3fb867216c0d98_gas_device_1('ts' timestamp,'event_time' timestamp,'a01011' double,'a01012' double,'a01013' double) tags('device_identification' binary(64));
创建成功
create STABLE if not exists thinglinks.GATEWAY_fe6fa6f1f63746adbd3fb867216c0d98_gas_device_1(ts timestamp,event_time timestamp,a01011 double,a01012 double,a01013 double) tags(device_identification binary(64));

普通产品设备必须添加子设备才能正常适用

COMMON:普通产品,需直连设备。
GATEWAY:网关产品,可挂载子设备。
目前COMMON普通产品还需要添加子设备才能正常适用 逻辑和网关产品重复
2.
采用Redis分布式锁进程出现无法获取连接情况,是否需要优化连接策略

重复消费问题

传感器->borker->rocketmq->link,如果这个link启动多个,都会监听一个rocketmq,link接收的数据会有重复

TDengine2.6+,TDengine3.0.1.4 创建子表失败问题

环境说明:使用的是没有更新kafka的版本,TDengine2.6+,TDengine3.0.1.4 版本都尝试过。
在子设备管理模块 调用刷新子设备数据模型接口(refreshDeviceInfoDataModel) 或者
设备管理模块创建普通设备 的时候 都会去创建子表,这时候一直报错
create table
if not exists thinglinks.GATEWAY_cb97f8c2a98447f5a916e8266cebeb95_hongwai_service_74c24f22e7944f649847b90de6193693
using thinglinks.GATEWAY_cb97f8c2a98447f5a916e8266cebeb95_hongwai_service
tags
(
sensortest
)
0f56b9ca79a875a3ab0582f1230c045
解决方案:tags标签插入问题,在动态sql处加入单引号。

<update id="createTable">
    create table
            if not exists #{dataBaseName}.#{tableName}
            using #{dataBaseName}.#{superTableName}
            tags
    <foreach item="item" collection="tagsFieldValues" separator=","
             open="(" close=")" index="">
        '${item.fieldValue}'
    </foreach>
</update>

image

设备在线/离线如何操作

只看到更新子设备的topic,普通设备和网关设备怎么更新在线/离线,是有接收心跳的topic吗?

定时任务执行一次未成功

定时任务的模块里面,sys_job表中字段misfire_policy定义执行策略,可是我使用的过程中无论是1,2,3都在执行任务,一直没有找到问题

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.