2.0-rc.2 - update docs

This commit is contained in:
Feng 2016-10-19 17:45:47 +08:00
parent 20fd4f4f7e
commit 65f587b012
10 changed files with 452 additions and 551 deletions

View File

@ -1,45 +0,0 @@
.. _advanced:
========
Advanced
========
*EMQ* 2.0-rc.2 release supports `Local Subscription` and `Shared Subscription`.
------------------
Local Subscription
------------------
The EMQ broker will not create global routes for `Local Subscription`, and only dispatch MQTT messages on local node.
.. code-block:: shell
mosquitto_sub -t '$local/topic'
mosquitto_pub -t 'topic'
Usage: subscribe a topic with `$local/` prefix.
-------------------
Shared Subscription
-------------------
Shared Subscription supports Load balancing to distribute MQTT messages between multiple subscribers in the same group::
---------
| | --Msg1--> Subscriber1
Publisher--Msg1,Msg2,Msg3-->| EMQ | --Msg2--> Subscriber2
| | --Msg3--> Subscriber3
---------
Two ways to create a shared subscription:
+-----------------+-------------------------------------------+
| Prefix | Examples |
+-----------------+-------------------------------------------+
| $queue/ | mosquitto_sub -t '$queue/topic |
+-----------------+-------------------------------------------+
| $share/<group>/ | mosquitto_sub -t '$share/group/topic |
+-----------------+-------------------------------------------+

View File

@ -5,11 +5,11 @@
Bridge Bridge
====== ======
------------- ---------------
emqttd Bridge EMQ Node Bridge
------------- ---------------
Two or more emqttd brokers could be bridged together. Bridges forward MQTT messages from one broker node to another:: Two or more *EMQ* brokers could be bridged together. Bridges forward MQTT messages from one broker node to another::
--------- --------- --------- --------- --------- ---------
Publisher --> | node1 | --Bridge Forward--> | node2 | --Bridge Forward--> | node3 | --> Subscriber Publisher --> | node1 | --Bridge Forward--> | node2 | --Bridge Forward--> | node3 | --> Subscriber
@ -18,7 +18,7 @@ Two or more emqttd brokers could be bridged together. Bridges forward MQTT messa
Configure Bridge Configure Bridge
---------------- ----------------
Suppose that we create two emqttd brokers on localhost: Suppose that we create two *EMQ* brokers on localhost:
+---------+---------------------+-----------+ +---------+---------------------+-----------+
| Name | Node | MQTT Port | | Name | Node | MQTT Port |
@ -69,9 +69,9 @@ Create a bridge that forwards all the 'sensor/#' messages from emqttd1 to emqttd
./bin/emqttd_ctl bridges stop emqttd2@127.0.0.1 sensor/# ./bin/emqttd_ctl bridges stop emqttd2@127.0.0.1 sensor/#
----------------- --------------
emqttd Bridge CLI EMQ Bridge CLI
----------------- --------------
.. code-block:: bash .. code-block:: bash
@ -95,7 +95,7 @@ Bridge mosquitto to emqttd broker::
------------- ----------------- ------------- -----------------
Sensor ----> | mosquitto | --Bridge--> | | Sensor ----> | mosquitto | --Bridge--> | |
------------- | emqttd | ------------- | EMQ |
------------- | Cluster | ------------- | Cluster |
Sensor ----> | mosquitto | --Bridge--> | | Sensor ----> | mosquitto | --Bridge--> | |
------------- ----------------- ------------- -----------------
@ -115,11 +115,11 @@ A bridge configured in mosquitto.conf::
# of mqttv31 or mqttv311. Defaults to mqttv31. # of mqttv31 or mqttv311. Defaults to mqttv31.
bridge_protocol_version mqttv311 bridge_protocol_version mqttv311
------------- -----------
rsmb Bridge rsmb Bridge
------------- -----------
Bridge RSMB to emqttd broker, same settings as mosquitto. Bridge RSMB to EMQ broker, same settings as mosquitto.
broker.cfg:: broker.cfg::

View File

@ -5,6 +5,38 @@
Changes Changes
======= =======
.. _release_2.0_rc.2:
----------------
Version 2.0-rc.2
----------------
*Release Date: 2016-10-19*
1. A more user-friendly configuration for the EMQ broker. Integrate with `cuttlefish` library and adopt `K = V` syntax::
node.name = emqttd@127.0.0.1
...
mqtt.listener.tcp = 1883
...
2. Support OS Environments::
EMQ_NODE_NAME
EMQ_NODE_COOKIE
EMQ_MAX_PORTS
EMQ_TCP_PORT
EMQ_SSL_PORT
EMQ_HTTP_PORT
EMQ_HTTPS_PORT
3. Refactor all the modules and plugins, and adopt new configuration syntax.
TODO: issues closed.
.. _release_2.0_rc.1: .. _release_2.0_rc.1:
---------------- ----------------

View File

@ -273,3 +273,4 @@ Consistent Hash and DHT
----------------------- -----------------------
Consistent Hash and DHT are popular in the design of NoSQL databases. Cluster of emqttd broker could support 10 million size of global routing table now. We could use the Consistent Hash or DHT to partition the routing table, and evolve the cluster to larger size. Consistent Hash and DHT are popular in the design of NoSQL databases. Cluster of emqttd broker could support 10 million size of global routing table now. We could use the Consistent Hash or DHT to partition the routing table, and evolve the cluster to larger size.

View File

@ -5,4 +5,5 @@
CoAP Protocol CoAP Protocol
============= =============
.. todo:: CoAP Protocol Introduction...

View File

@ -5,7 +5,7 @@
Commands Commands
======== ========
The './bin/emqttd_ctl' command line could be used to query and administrate emqttd broker. The './bin/emqttd_ctl' command line could be used to query and administrate the *EMQ* broker.
.. WARNING:: Cannot work on Windows .. WARNING:: Cannot work on Windows
@ -434,13 +434,22 @@ List all plugins::
$ ./bin/emqttd_ctl plugins list $ ./bin/emqttd_ctl plugins list
Plugin(emqttd_dashboard, version=0.16.0, description=emqttd web dashboard, active=true) Plugin(emq_auth_clientid, version=2.0, description=Authentication with ClientId/Password, active=false)
Plugin(emqttd_plugin_mysql, version=0.16.0, description=emqttd Authentication/ACL with MySQL, active=false) Plugin(emq_auth_http, version=2.0, description=Authentication/ACL with HTTP API, active=false)
Plugin(emqttd_plugin_pgsql, version=0.16.0, description=emqttd PostgreSQL Plugin, active=false) Plugin(emq_auth_ldap, version=2.0, description=Authentication/ACL with LDAP, active=false)
Plugin(emqttd_plugin_redis, version=0.16.0, description=emqttd Redis Plugin, active=false) Plugin(emq_auth_mongo, version=2.0, description=Authentication/ACL with MongoDB, active=false)
Plugin(emqttd_plugin_template, version=0.16.0, description=emqttd plugin template, active=false) Plugin(emq_auth_mysql, version=2.0, description=Authentication/ACL with MySQL, active=false)
Plugin(emqttd_recon, version=0.16.0, description=emqttd recon plugin, active=false) Plugin(emq_auth_pgsql, version=2.0, description=Authentication/ACL with PostgreSQL, active=false)
Plugin(emqttd_stomp, version=0.16.0, description=Stomp Protocol Plugin for emqttd broker, active=false) Plugin(emq_auth_redis, version=2.0, description=Authentication/ACL with Redis, active=false)
Plugin(emq_auth_username, version=2.0, description=Authentication with Username/Password, active=false)
Plugin(emq_coap, version=0.2, description=CoAP Gateway, active=false)
Plugin(emq_dashboard, version=2.0, description=Dashboard, active=true)
Plugin(emq_mod_rewrite, version=2.0, description=EMQ Rewrite Module, active=false)
Plugin(emq_plugin_template, version=2.0, description=EMQ Plugin Template, active=false)
Plugin(emq_recon, version=2.0, description=Recon Plugin, active=false)
Plugin(emq_reloader, version=3.0, description=Reloader Plugin, active=false)
Plugin(emq_sn, version=0.2, description=MQTT-SN Gateway, active=false)
Plugin(emq_stomp, version=2.0, description=Stomp Protocol Plugin, active=false)
Properties of a plugin: Properties of a plugin:
@ -452,24 +461,24 @@ Properties of a plugin:
| active | If the plugin is Loaded | | active | If the plugin is Loaded |
+-------------+--------------------------+ +-------------+--------------------------+
load <Plugin> Load <Plugin>
------------- -------------
Load a Plugin:: Load a Plugin::
$ ./bin/emqttd_ctl plugins load emqttd_recon $ ./bin/emqttd_ctl plugins load emq_recon
Start apps: [recon,emqttd_recon] Start apps: [recon,emq_recon]
Plugin emqttd_recon loaded successfully. Plugin emq_recon loaded successfully.
unload <Plugin> Unload <Plugin>
--------------- ---------------
Unload a Plugin:: Unload a Plugin::
$ ./bin/emqttd_ctl plugins unload emqttd_recon $ ./bin/emqttd_ctl plugins unload emq_recon
Plugin emqttd_recon unloaded successfully. Plugin emq_recon unloaded successfully.
.. _command_bridges:: .. _command_bridges::
@ -477,7 +486,7 @@ Unload a Plugin::
bridges bridges
------- -------
Bridge two or more emqttd brokers:: Bridge two or more *EMQ* brokers::
--------- --------- --------- ---------
Publisher --> | node1 | --Bridge Forward--> | node2 | --> Subscriber Publisher --> | node1 | --Bridge Forward--> | node2 | --> Subscriber
@ -695,23 +704,23 @@ Show all the TCP listeners::
$ ./bin/emqttd_ctl listeners $ ./bin/emqttd_ctl listeners
listener on http:8083 listener on mqtt:ws:8083
acceptors : 4 acceptors : 4
max_clients : 64 max_clients : 64
current_clients : 0 current_clients : 0
shutdown_count : [] shutdown_count : []
listener on mqtts:8883 listener on mqtt:ssl:8883
acceptors : 4 acceptors : 4
max_clients : 512 max_clients : 512
current_clients : 0 current_clients : 0
shutdown_count : [] shutdown_count : []
listener on mqtt:1883 listener on mqtt:tcp:1883
acceptors : 16 acceptors : 8
max_clients : 8192 max_clients : 1024
current_clients : 1 current_clients : 0
shutdown_count : [{closed,1}] shutdown_count : []
listener on http:18083 listener on dashboard:http:18083
acceptors : 4 acceptors : 2
max_clients : 512 max_clients : 512
current_clients : 0 current_clients : 0
shutdown_count : [] shutdown_count : []

View File

@ -58,7 +58,7 @@ copyright = u'2016, Feng Lee'
# The short X.Y version. # The short X.Y version.
version = '2.0' version = '2.0'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '2.0' release = '2.0-rc.2'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
@ -201,7 +201,7 @@ latex_elements = {
# (source start file, target name, title, # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]). # author, documentclass [howto, manual, or own class]).
latex_documents = [ latex_documents = [
('index', 'ErlangMQTTBroker.tex', u'Erlang MQTT Broker Documentation', ('index', 'ErlangMQTTBroker.tex', u'EMQ 2.0 Documentation',
u'Feng Lee', 'manual'), u'Feng Lee', 'manual'),
] ]
@ -231,7 +231,7 @@ latex_documents = [
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
('index', 'erlangmqttbroker', u'Erlang MQTT Broker Documentation', ('index', 'erlangmqttbroker', u'EMQ 2.0 Documentation',
[u'Feng Lee'], 1) [u'Feng Lee'], 1)
] ]

File diff suppressed because it is too large Load Diff

View File

@ -65,7 +65,7 @@ Installing on Mac, for example:
.. code-block:: bash .. code-block:: bash
unzip emqttd-macosx-v2.0-beta.2-20160910.zip && cd emqttd unzip emqttd-macosx-v2.0-rc.2-20160910.zip && cd emqttd
# Start emqttd # Start emqttd
./bin/emqttd start ./bin/emqttd start

View File

@ -3,21 +3,23 @@
You can adapt this file completely to your liking, but it should at least You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive. contain the root `toctree` directive.
=========================== ==========================
emqttd - Erlang MQTT Broker *EMQ* - Erlang MQTT Broker
=========================== ==========================
emqttd(Erlang MQTT Broker) is a massively scalable and clusterable MQTT V3.1/V3.1.1 broker written in Erlang/OTP. *EMQ* (Erlang MQTT Broker) is a massively scalable and clusterable MQTT V3.1/V3.1.1 broker written in Erlang/OTP.
emqttd is fully open source and licensed under the Apache Version 2.0. emqttd implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports WebSocket, STOMP, SockJS, CoAP and MQTT-SN at the same time. .. NOTE:: Adopt a shortened project name since 2.0 release: EMQ
Latest release of the emqttd broker is scaling to 1.3 million MQTT connections on a 12 Core, 32G CentOS server. *EMQ* is fully open source and licensed under the Apache Version 2.0. emqttd implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports WebSocket, STOMP, SockJS, CoAP and MQTT-SN at the same time.
Latest release of the *EMQ* broker is scaling to 1.3 million MQTT connections on a 12 Core, 32G CentOS server.
.. image:: ./_static/images/emqtt.png .. image:: ./_static/images/emqtt.png
The emqttd project provides a scalable, enterprise grade, extensible open-source MQTT broker for IoT, M2M, Smart Hardware, Mobile Messaging and HTML5 Web Messaging Applications. The *EMQ* project provides a scalable, enterprise grade, extensible open-source MQTT broker for IoT, M2M, Smart Hardware, Mobile Messaging and HTML5 Web Messaging Applications.
Sensors, Mobiles, Web Browsers and Application Servers could be connected by emqttd brokers with asynchronous PUB/SUB MQTT messages. Sensors, Mobiles, Web Browsers and Application Servers could be connected by *EMQ* brokers with asynchronous PUB/SUB MQTT messages.
+---------------+-----------------------------------------+ +---------------+-----------------------------------------+
| Homepage: | http://emqtt.io | | Homepage: | http://emqtt.io |
@ -46,6 +48,7 @@ Contents:
cluster cluster
bridge bridge
guide guide
advanced
design design
commands commands
plugins plugins