美文网首页
kmqtt架构

kmqtt架构

作者: kool2017 | 来源:发表于2021-04-26 15:17 被阅读0次
  1. kmqtt
    功能简介
    mqtt服务端程序。属于边缘消息业务域。mqtt网络协议功能基于netty实现,集成在springboot工程中。会话上下文保存在程序内存中,会话状态可保存在程序内存、redis、etcd中。kmqtt除了拥有mqtt协议必须的功能外,还包含扩展功能:权限功能、熔断功能、日志统计分析功能。权限验证功能需要对接kauth服务,http接口实现。日志统计分析功能需要对接kafka,并由kmetrics消费分析日志。
    部署说明
    可单机部署、负载均衡部署。单机部署时,会话状态配置不限制。负载均衡部署时,会话状态不能保存在内存中。
    推荐部署方案:nginx+keepalive作为负载均衡服务,部署2个nginx;部署n(>1)个kmqtt构成kmqtt集群;会话状态保存在redis中,redis主从方式部署,部署1主redis+2从redis+3哨兵;部署kafka集群,kafka节点数>=3。
    2.kauth
    功能简介
    为kmqtt提供权限验证服务。属于边缘计算业务域。服务的mqtt用户和用户主题权限数据是kadmin推送过来的,并存储在redis中,不设置超时时间。redis的数据发生错误时,可由kadmin发起数据同步,覆盖redis。
    部署说明
    当kmqtt开启权限验证功能时,kauth需要配套部署,且必须具有高稳定性。kauth的redis与kmqtt的redis在逻辑上是不同的库,但是物理上可以共用。
    推荐部署方案:nginx作为负载均衡服务,部署2个nginx;部署n(>1)个kauth构成kauth集群;redis主从方式部署,部署1主redis+2从redis+3哨兵。
    3.kmetrics
    功能简介
    日志统计分析程序。属于边缘计算业务域。对接kafka,消费kmqtt的日志。统计的指标会保存在redis中,也会保存在mysql中,还会对接prometheus存储时序数据。
    部署说明
    当kmqtt开启日志统计分析功能时,kmetrics需要配套部署。kmetrics是消费者,其消费能力要大于kmqtt的生产能力,不然会造成kafka消息堆积。如果有实时指标统计的需求,kmetrics消费者必须实现kafka 无消息堆积。kmetrics的redis与kauth的redis逻辑上是同一个库。
    推荐部署方案:部署n(>=1)个kmetrics构成kmetrics集群;redis主从方式部署,部署1主redis+2从redis+3哨兵。部署mysql。
    4.kreport
    功能简介
    报表统计程序。属于边缘计算业务域。与kmetrics共用redis和mysql。统计日报表、月报表。为kadmin提供报表查询服务。
    部署说明
    kreport的redis和kmetrics的redis逻辑上是同一个库。mysql也是同一个库。
    推荐部署方案:部署1个kreport。
    5.kadmin+kadminweb
    功能简介
    后台管理程序前后端。属于边缘管控业务域。kamdin与kreport、kmetrics通过http接口单向交互。kadmin与kadminweb通过http接口给前端提供服务,通过websocket给前端推送通知。功能包括:mqtt用户管理、客户端设备管理、用户主题权限管理、dashboard、统计报表。
    部署说明
    kadmin与kreport的redis、mysql逻辑上是不同的库。
    推荐部署方案:部署1个nginx;部署1个kadmin;部署1个kadminweb;单机部署redis;单机部署mysql。
    6.kbi
    功能简介
    数据大屏前端。属于边缘管理业务域。kbi与kreport、kmetrics通过http接口单向交互。用于展现kmqtt指标监控数据大屏。
    部署说明
    kbi的nginx和kadminweb的nginx可以共用。
    推荐部署方案:部署1个kbi。
    7.prometheus+grafana
    功能简介
    指标监控服务的前后端。属于边缘管控业务域。用于展示kmqtt运行情况的指标,给运维人员提供监控视图,也能配置告警规则对异常情况进行告警通知。
    部署说明
    prometheus单机部署,采用直连kmetrics的pull模式。注意prometheus的主机硬盘大小,定期清理数据的配置要符合实际情况。如果需要对环境中的kmqtt、kauth、kmetrics、kreport的jvm进行监控,可以部署jmx-exporter。如果需要对redis进行监控,可以部署redis-exporter。如果要对kafka进行监控,可以部署kafka-exporter。如果需要对nginx进行监控,可以部署nginx-exporter。如果要对mysql进行监控,可以部署mysqld-exporter。
    推荐部署方案:部署1个prometheus;部署1个grafana。
    8.cmak
    功能简介
    kafka后台管理工具。可管理topic。可查看kafka 消费者情况。可查看broker情况。
    部署说明
    推荐部署方案:单机部署cmak
    9.展望
    AIOT方向
    接入ASR/TTS/NLP,实现语音交互
    IOT+图数据库方向
    接入开源图数据库、NLP,做数据分析。

相关文章

  • kmqtt架构

    kmqtt功能简介mqtt服务端程序。属于边缘消息业务域。mqtt网络协议功能基于netty实现,集成在sprin...

  • 系统架构基本概要

    架构原理图 应用架构 业务架构 系统架构 数据架构 技术架构

  • 数据库事务、Redis缓存

    项目的架构(业务架构、技术架构、物理架构) 单机架构 ---> 多机架构 ---> 读写分离 ---> 集群架构 ...

  • 大型网站系统架构图

    安全架构 核心架构要素 高性能架构 高可用架构 伸缩性架构 可拓展性架构 * 前言 前端架构 应用层架构 安全架构...

  • 大型网站架构笔记

    大型网站架构 网站架构包括:前端架构+应用层架构+服务层架构+存储层架构+后台架构+数据中心机房架构+安全架构+数...

  • 架构设计的5视图方法

    架构设计的5视图方法: 逻辑架构,开发架构、运行架构、物理架构、数据架构 1.逻辑架构 逻辑架构关注功能,不仅包括...

  • 架构的一些记录

    架构可细分为业务架构、应用架构、技术架构,业务架构是战略,应用架构是战术,技术架构是装备。其中应用架构承上启下,一...

  • 软件技术架构演变历史

    传统架构 传统架构– 软件架构– 图一 传统架构– 硬件架构– 图二(仅供参考) 传统架构– 企业组织架构– 图三...

  • 中小型创业公司,参考这篇文章去组建技术团队

    人员架构 工具架构 流程架构 代码层架构

  • 非常值得看的文章集合,会持续更新

    1.runloop 2.架构1、架构2、架构3、架构4、架构5

网友评论

      本文标题:kmqtt架构

      本文链接:https://www.haomeiwen.com/subject/tykdrltx.html