高手博客传送门(https://www.cnblogs.com/wunaozai/p/8120075.html)
接下来是我参照高手博客的步骤
做以下步骤的前提是我已经成功编译了EMQ3.0,并且可以在windows端通过IP和端口来访问EMQ的DashBoard。
1.进入/emq-relx/deps目录,里面有个emqx_plugin_template是插件模板
执行以下命令:
cp -r emqx_plugin_template emqx_plugin_kafka //复制一份出来进行修改
cd .. //返回上级目录
vi relx.config //修改./emq-relx/relx.config
----------------------------------------------------------------------------
{emqx_plugin_kafka,load} //文件第52行增加该语句
-----------------------------------------------------------------------------
cd /usr/local/emq-relx/data/
vi loaded_plugins //配置默认启动插件
----------------------------------------------------------
emqx_plugin_kafka. //末尾添加这句
-----------------------------------------------------------
cd /usr/local/emq-relx
vi Makefile
--------------------------------------------------------------------------
emqx-plugin-kafka //在第13行OUR_APPS =...后面添加该语句
---------------------------------------------------------------------------
rm -rf _rel
make clean
make
此时出现的问题
继续执行以下步骤
2.修改emqx_plugin_kafka插件
进入/usr/local/emq-relx/deps/emqx_plugin_kafka/目录下:执行make clean
- 修改etc文件夹:emqx_plugin_template.config标题和内容的“template”为“kafka”
- 修改src文件夹:首先修改文件名;
然后修改三个demo中的引用为修改后的名字,如:-module(emqx_acl_demo_kafka).;
最后内容中给的“template”修改为“kafka”;
文件名修改前
文件名修改后:
- 修改test文件夹:emqx_plugin_template_SUITE.erl文件名与文件中的“template”修改为“kafka”
3.修改/usr/local/emq-relx/deps/emqx_plugin_kafka/中Makefile文件内容中的“template”修改为“kafka”
4.继续执行下列命令
cd /usr/local/emq-relx
make
出现和上面相同的问题(该问题是因为我移动了安装好后的otp_src_21.0却没有设置环境变量)
解决如下:
vi /etc/profile //设置以下环境变量
---------------------------------------------------------------
#erl enviroment
export PATH=/home/erl/bin/:$PATH
#emq enviroment
export PATH=/usr/local/emq-relx/_rel/emqx/bin/:$PATH
----------------------------------------------------------------
cd .. (返回local目录下)
git clone git://github.com/rebar/rebar.git
cd rebar
./bootstrap
vi /etc/profile
------------------------------------
//增加的内容
#rebar enviroment
export PATH=/usr/local/rebar:$PATH
-------------------------------------
//接下来重新编译
cd /usr/local/emq-relx
make clean
make
编译成功后如图:
6.启动EMQ,打开windows浏览器查看,可以看到我们自己的插件已经被添加进去了。
7.测试一下
修改:/usr/local/emq-relx/deps/emqx_plugin_kafka/src/emqx_plugin_kafka.er
添加语句: io:format(“start kafka Hello World~n,[]”).
回到目录:/usr/local/emq-relx/deps/emqx_plugin_kafka/
执行:make clean && make
此时生成新的ebin文件
执行:cp -r ebin /usr/local/emq-relx/_rel/emqx/lib/emqx_plugin_kafka-3.0/
(覆盖原来的ebin)
执行:emqx console
打印了我们刚才添加输出的语句: