Architecture

This commit is contained in:
Feng Lee 2015-05-02 12:21:20 +08:00
parent f0525ea296
commit 64c464f73c
1 changed files with 44 additions and 19 deletions

View File

@ -7,26 +7,23 @@ emqttd requires Erlang R17+ to build.
## Goals ## Goals
emqttd aims to provide a solid, carrier-class MQTT broker that could support millions concurrent connections. emqttd aims to provide a solid, enterprise grade open-source MQTT broker that could support ten millions of concurrent MQTT clients.
## Architecture ## Architecture
TODO: architecture diagraph. ![emqttd architecture](http://emqtt.io/static/img/Architecture.png)
![Error Png](http://nextalk.im/static/img/design/WebimForPHP5.png)
TODO: architecture diagraph.
## Featues ## Featues
* Full MQTT V3.1/V3.1.1 protocol specification support * Full MQTT V3.1/V3.1.1 protocol specification support
* QoS0, QoS1, QoS2 Publish and Subscribe * QoS0, QoS1, QoS2 Publish and Subscribe
* Session Management and Offline Messages * Session Management and Offline Messages
* Retained Messages * Retained Messages Support
* TCP/SSL connection support * Last Will Message Support
* MQTT Over Websocket * TCP/SSL Connection Support
* HTTP Publish API * MQTT Over Websocket(SSL) Support
* [$SYS/borkers/#](https://github.com/emqtt/emqtt/wiki/$SYS-Topics-of-Broker) support * HTTP Publish API Support
* [$SYS/borkers/#](https://github.com/emqtt/emqtt/wiki/$SYS-Topics-of-Broker) Support
* Client Authentication with clientId or username, password. * Client Authentication with clientId or username, password.
* Client ACL control with ipaddress, clientid, username. * Client ACL control with ipaddress, clientid, username.
* Cluster brokers on several servers. * Cluster brokers on several servers.
@ -35,11 +32,37 @@ TODO: architecture diagraph.
* Extensible architecture with plugin support * Extensible architecture with plugin support
* Passed eclipse paho interoperability tests * Passed eclipse paho interoperability tests
## Getting Started ## QuickStart
Download binary packeges for linux, mac and freebsd from [http://emqtt.io/downloads](http://emqtt.io/downloads) Download binary packeges for linux, mac and freebsd from [http://emqtt.io/downloads](http://emqtt.io/downloads). And then:
TODO: Getting Started Doc... ```
tar xvf emqttd-ubuntu64-0.7.0-alpha.tgz && cd emqttd
# start console
./bin/emqttd console
# start as daemon
./bin/emqttd start
# check status
./bin/emqttd_ctl status
# stop
./bin/emqttd stop
```
Build from source:
```
git clone https://github.com/emqtt/emqttd.git
cd emqttd && make && make dist
```
## GettingStart
Read [GettingStarted](https://github.com/emqtt/emqttd/wiki/GettingStarted) for more installation and configuration guide.
## Benchmark ## Benchmark
@ -47,15 +70,17 @@ Benchmark 0.6.1-alpha on a ubuntu/14.04 server with 8 cores, 32G memory from Qin
200K+ Connections, 200K+ Topics, 20K+ In/Out Messages/sec, 20Mbps+ In/Out with 8G Memory, 50%CPU/core 200K+ Connections, 200K+ Topics, 20K+ In/Out Messages/sec, 20Mbps+ In/Out with 8G Memory, 50%CPU/core
## Sponsors
...Sponse us...
## License ## License
The MIT License (MIT) The MIT License (MIT)
## Author ## Contributors
* @hejin1026 <260495915 at qq.com>
* @desoulter <assoulter123 at gmail.com>
* @turtleDeng
## Author
Feng Lee <feng@emqtt.io> Feng Lee <feng@emqtt.io>