# kmqtt **Repository Path**: kool2017/kmqtt ## Basic Information - **Project Name**: kmqtt - **Description**: mqtt 服务端,java语言,基于netty,支持内存存储会话状态、redis存储会话状态、etcd存储会话状态3种运行模式,分别适用于单机调试、高并发、分布式高可用3种场景。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-03-18 - **Last Updated**: 2023-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # kmqtt #### 介绍 mqtt 服务端,java语言,基于netty,支持内存存储会话状态、redis存储会话状态、etcd存储会话状态3种运行模式,分别适用于单机调试、高并发、分布式高可用3种场景。 关于用户、客户端id、客户端地址的管理,用户和客户端ID可在系统中注册,也可不注册。客户端地址不需要注册。 定义4级自由度:○表示要注册,x表示不用注册 ------------------------------------------------------------------------------------------------------------------------------------------ 自由度 | 用户 | 客户端ID | 场景 1 | ○ | ○ | 用户必须注册,且用户的客户端设备必须先登记才能使用。系统对外部开放,设备是系统运营方提供的场景。 2 | ○ | x | 用户必须注册。系统对外部开放,设备是用户自己的场景。 3 | x | ○ | 客户端设备必须先登记才能使用。系统只在运营方内部使用,设备是运营费自己的,对mqtt客户端设备的使用有管理要求,需要设备的唯一标识。 4 | x | x | 系统只在运营方内部使用,设备是运营方自己的,不需要mqtt管理设备,数据内部自己处理对设备的识别。 ------------------------------------------------------------------------------------------------------------------------------------------ #### 日志 20210328 增加权限功能,用户权限验证和主题权限验证。 20210328 增加熔断功能,当某个客户端在一定时间内持续发生错误导致重连次数超过阈值时,在socket连接建立时立即断开连接,直到计数器重置后才可以重新连接。 20210401 增加日志推送功能,对接kafka,推送收报文日志、发报文日志、会话上下文统计日志、客户端订阅日志、出站未确认消息统计日志。 20210414 增加指标报表功能。kmetrics消费kafka,计算当日指标和prometheus指标,保存快照。kreport根据redis中的当日指标、数据库中的快照统计每日报表。