EMQ 介绍
   
EMQ 2.0 完整支持 MQTT V3.1/V3.1.1 版本协议规范,并扩展支持 WebSocket、Stomp、CoAP、MQTT-SN 或私有 TCP 协议。EMQ 2.0 消息服务器支持单节点100万连接与多节点分布式集群。
EMQ 2.0 为大规模客户端连接 (C1000K+) 的移动推送、移动消息、物联网、车联网、智能硬件等应用,提供一个完全开放源码、安装部署简便、企业级稳定可靠、可弹性扩展、易于定制开发的 MQTT 消息服务器。
    
    
    环境准备
   
    CentOS 7
    
    JDK 1.8
    
    Kafka
   
    
    
    安装Erlang
   
    二、 安装Erlang
    
    1、下载erlang
    
    yum install wget #安装wget插件,若已安装可以忽略
    
    wget
    
     http://erlang.org/download/otp_src_19.3.tar.gz
    
    
    2、使用yum安装下必须的配件
    
    yum install gcc* glibc-devel make ncurses-devel openssl-devel autoconf -y
    
    yum install unixODBC unixODBC-devel -y
    
    3、开始安装
    
    tar -zxvf otp_src_19.3.tar.gz
    
    cd otp_src_19.3
    
    ./configure –prefix=/usr/local/erlang #这步可能会出现提示提示缺少的组件,详情见常见问题
    
    make && make install #超慢
    
    ln -s /usr/local/erlang/bin/erl /usr/local/bin/
    
    ln -s /usr/local/erlang/bin/erlc /usr/local/bin/
    
    ln -s /usr/local/erlang/bin/escript /usr/local/bin/
    
    4、测试安装
    
    输入命令:
    
    erl
    
    若出现下面的提示则证明安装成功。
    
    
    
    按Ctrl+C后输入a退出命令。
    
    5、常见问题
   
********************** APPLICATIONS DISABLED **********************
jinterface : Java compiler disabled by user
********************** APPLICATIONS INFORMATION *******************
wx : wxWidgets not found, wx will NOT be usable
********************** DOCUMENTATION INFORMATION ******************
    documentation :
    
    fop is missing.
    
    Using fakefop to generate placeholder PDF files.
   
    其中APPLICATIONS DISABLED 标示是必须要安装的,另外两个项目可以忽略
    
    jinterface : Java compiler disabled by user
    
    如果不用java编译可以忽略 在编译的时候 加入–without-javac
   
    
    
    安装Rebar
   
    1、下载Rebar
    
    cd /usr/local
    
    yum install git -y #安装git插件,若已安装可以忽略
    
    git clone git://github.com/rebar/rebar.git
    
    2、开始安装
    
    yum -y install gcc* gcc-c++ make*
    
    cd rebar
    
    ./bootstrap
    
    3、配置环境变量
    
    配置环境变量
    
    vi /etc/profile
    
    export PATH=/usr/local/rebar:$PATH
    
    执行文件:
    
    source /etc/profile
    
    4、测试安装
    
    输入命令:
    
    rebar -V
    
    若出现如下提示,则证明安装成功
    
    
   
    
    
    使用源码安装EMQ
   
    1、下载EMQ
    
    cd /usr/local
    
    wget
    
     https://codeload.github.com/emqx/emqx-rel/tar.gz/v2.3.11
    
    
    2、编译安装
    
    tar -zxvf emqx-rel-2.3.11.tar.gz
    
    cd emqx-rel-2.3.11
    
    make #编译(超慢)
    
    若make中出现问题,一般是没有安装相应的插件,使用yum安装即可。见常见问题。
    
    3、性能调优
    
    优化设置 Erlang 虚拟机启动参数
    
    vi /usr/local/emqx-rel-2.3.11/_rel/emqttd/etc/emq.conf
    
    #关闭匿名认证
    
    mqtt.allow_anonymous = false
    
    Erlang Process Limit
    
    node.process_limit = 2097152
    
    #Sets the maximum number of simultaneously existing ports for this system
    
    node.max_ports = 1048576
    
    EMQ 消息服务器参数
    
    设置 TCP 监听器的 Acceptor 池大小,最大允许连接数:
    
    #SSL Listener
    
    listener.ssl.external = 0.0.0.0:8883
    
    listener.ssl.external.acceptors = 64
    
    listener.ssl.external.max_clients = 1000000
    
    4、常见问题
    
    若编译过程中遇到如下错误,Ctrl+C取消编译,重新输入make编译。
    
    
   
    
    
    安装EMQ-Kafka插件
   
    1、参数配置
    
    (1)vi /usr/local/emqx-rel-2.3.11/Makefile
    
    添加:
    
    DEPS += emqttd_kafka_bridge
    
    dep_emqttd_kafka_bridge = git
    
     https://github.com/shsjdcbg/emq-kafka.git
    
    
    (2)vi /usr/local/emqx-rel-2.3.11/relx.config
    
    在中 release 段落添加:
    
    {emqttd_kafka_bridge, load}
    
    2、编译
    
    cd /usr/local/emqx-rel-2.3.11
    
    make
    
    3、配置Kafka插件
    
    vi /usr/local/emqx-rel-2.3.11/_rel/emqttd/etc/plugins/emqttd_kafka_bridge.config
    
    修改bootstrap_broker参数为Kafka为IP和端口
    
    kafka_producer_topic为Kafka主题,需要提前在Kafka中创建主题,创建主题命令见六。
    
    4、启动EMQ
    
    cd /usr/local/emqx-rel-2.3.11/_rel/emqttd/bin
    
    ./emqttd start
    
    查看日志(/usr/local/emqx-rel-2.3.11/_rel/emqttd/log)无报错则安装成功。
    
    访问ip:18083地址可以查看EMQ 控制台。
   
存入Kafka消息格式{“topic”:””, “message”:[{}]}