Skip to content

Commit

Permalink
update project state
Browse files Browse the repository at this point in the history
  • Loading branch information
张力方 committed Aug 26, 2022
1 parent 9b6e597 commit 0a8eaaa
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
[中文文档](https://github.com/DrmagicE/gmqtt/blob/master/README_ZH.md)
# Gmqtt [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) [![Gitter](https://badges.gitter.im/gmqtt/community.svg)](https://gitter.im/gmqtt/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![Build Status](https://github.com/DrmagicE/gmqtt/actions/workflows/test.yml/badge.svg) [![codecov](https://codecov.io/gh/DrmagicE/gmqtt/branch/master/graph/badge.svg)](https://codecov.io/gh/DrmagicE/gmqtt) [![Go Report Card](https://goreportcard.com/badge/github.com/DrmagicE/gmqtt)](https://goreportcard.com/report/github.com/DrmagicE/gmqtt)
# Gmqtt [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) ![Build Status](https://github.com/DrmagicE/gmqtt/actions/workflows/test.yml/badge.svg) [![codecov](https://codecov.io/gh/DrmagicE/gmqtt/branch/master/graph/badge.svg)](https://codecov.io/gh/DrmagicE/gmqtt) [![Go Report Card](https://goreportcard.com/badge/github.com/DrmagicE/gmqtt)](https://goreportcard.com/report/github.com/DrmagicE/gmqtt)

# Project state
This project is less maintained due to personal reasons. Here are some information for people who want to use this project.

Gmqtt was used in production and worked well. The production environment was serving hundreds of clients(or maybe thousands or 10 thousands now), and
each client published QoS 1 message to report their state every 15 seconds. The subscribers on the cloud would store those state into persist backend.
All clients were non-persistent session and using v3.1.1 protocol.

It is suggested to evaluate and test carefully before running in your production environment.


# Features
Expand All @@ -12,7 +21,7 @@ See `Server` interface in `server/server.go` and [admin](https://github.com/Drma
* Provide GRPC and REST APIs to interact with server. (plugin:[admin](https://github.com/DrmagicE/gmqtt/blob/master/plugin/admin/README.md))
* Provide session persistence which means the broker can retrieve the session data after restart.
Currently, only redis backend is supported.
* Provide clustering, see [federation plugin](./plugin/federation/README.md) for examples and details.
* Provide clustering, see [federation plugin](./plugin/federation/README.md) for examples and details. (WARNING: This is an experimental feature, and has never been used in production environment.)


# Get Started
Expand Down
9 changes: 7 additions & 2 deletions README_ZH.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
# Gmqtt [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) [![Gitter](https://badges.gitter.im/gmqtt/community.svg)](https://gitter.im/gmqtt/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) ![Build Status](https://github.com/DrmagicE/gmqtt/actions/workflows/test.yml/badge.svg) [![codecov](https://codecov.io/gh/DrmagicE/gmqtt/branch/master/graph/badge.svg)](https://codecov.io/gh/DrmagicE/gmqtt) [![Go Report Card](https://goreportcard.com/badge/github.com/DrmagicE/gmqtt)](https://goreportcard.com/report/github.com/DrmagicE/gmqtt)


Gmqtt是用Go语言实现的一个具备灵活灵活扩展能力,高性能的MQTT broker,其完整实现了MQTT V3.x和V5协议。

# 项目现状
由于个人原因,该项目较少维护。以下是一些提供给想使用此项目的人的信息。
Gmqtt已用于生产,效果良好。生产环境服务于大约数百个客户(现在可能是数千个或10000个),并且每个客户端以15s一次的频率发布QoS 1消息来报告其状态。
云上的订阅者会将这些状态存储到持久后端。
所有客户端都是非持久会话,使用v3.1.1协议。

# 更多资料
[Gmqtt插件机制详解](https://juejin.cn/post/6908305981923409934)
[Gmqtt——Go语言实现的MQTT broker](https://juejin.cn/post/6905898448743038990)
Expand All @@ -15,7 +20,7 @@ Gmqtt是用Go语言实现的一个具备灵活灵活扩展能力,高性能的M
* 提供监控指标,支持prometheus。 (plugin: [prometheus](https://github.com/DrmagicE/Gmqtt/blob/master/plugin/prometheus/READEME.md))
* GRPC和REST API 支持. (plugin:[admin](https://github.com/DrmagicE/Gmqtt/blob/master/plugin/admin/READEME.md))
* 支持session持久化,broker重启消息不丢失,目前支持redis持久化。
* 支持集群, 示例和详情请参考[federation plugin](./plugin/federation/README.md)
* 支持集群, 示例和详情请参考[federation plugin](./plugin/federation/README.md)(注意: 这项特性并没有在生产环境中验证过)

# 开始
我们需要通过源码编译的方式启动,请确保您所在的机器上已经具备Go环境。
Expand Down
1 change: 1 addition & 0 deletions plugin/federation/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Federation
**WARNING: This is an experimental feature, and has never been used in production environment.**

Federation is a kind of clustering mechanism which provides high-availability and horizontal scaling.
In Federation mode, multiple gmqtt brokers can be grouped together and "act as one".
Expand Down

0 comments on commit 0a8eaaa

Please sign in to comment.