Giter Club home page Giter Club logo

jmqtt's Introduction

English | 中文

Jmqtt

Note:The master branch may be unstable during development, causing the packaged files to not run or even package. Please use the releases version.

Jmqtt logo

Features

  • Developed in Java and Netty, it supports plug-in mode with high performance and high scalability.
  • Support mqtt protocol qos0, qos1, qos2 message quality service.
  • Supports cleansession, retain, will and other message services in the mqtt protocol.
  • Full support for mqtt Topic match filtering.
  • Support websocket protocol.
  • Support RocksDB for data local storage to make data highly reliable.

Quick Start

Online test environment:120.24.69.113,TCP port :1883;Websocket port:1884.

  1. Download the release version or clone this project.
  2. Execute in the root directory:mvn -Ppackage-all -DskipTests clean install -U
  3. Run the jmqttstart script directly in the jmqtt-distrubution/target/jmqtt/bin directory.
  4. Local launch: find the BrokerStartup class and configure the startup environment variable: The key is JMQTT_HOME, and the value is the absolute address where jmqtt-distribution is located. The purpose of the configuration is to specify the address where the jmqtt configuration file and log configuration file are located.

Architecture Design

架构图

Module introduction and local environment

  • broker:Mqtt protocol layer. logical processing. BrokerStartup is the startup class, BrokerController is the initialization class, initialize all the necessary environment, where the plugin configuration of acl, store must also be initialized here.
  • common:Common layer. Used to store tool classes, bean classes, etc.
  • remoting:Communication layer. Used for connection management, protocol analysis, heartbeat, etc.
  • distribution:Configuration module. Used for configuration files, start and stop commands, etc.
  • example:Client example. Only java and websocket examples are supported currently.
  • group:Cluster management module. Used for message transmission, cluster management, and related operation and maintenance functions.
  • store:Storage module. Provides several interfaces for mqtt protocol data, supports memory-based and Rocksdb local storage.

RoadMap

Version 3.x

  1. Support simple operation and maintenance functions.
  2. Support RocketMQ Bridge.
  3. Support Kafka Bridge.
  4. Support $SYS Topic Monitoring.

Version 2.x

  1. Support clustering, multi-host scale-out, high availability.
  2. Support SSL/TLS.
  3. Support safety certificate.

Version 1.1.0

  1. Add connect, publish, subsribe permission authentication interface and make it pluggable.
  2. Remove Redis storage.
  3. Optimize Rocksdb local storage.
  4. Fix bugs in the subscription module.
  5. Fix bugs that offline messages can't receive.
  6. Fix bugs that occasionally do not receive retain messages.
  7. Add storeLog, remotingLog messageTraceLog, clientTraceLog.

Version 1.0.0

  1. Full support for the mqtt protocol.
  2. Support Websocket protocol.
  3. Support for data local persistence

jmqtt's People

Contributors

arrogant95 avatar arrogantdyc avatar bewindoweb avatar cicizz avatar swwheihei avatar

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.