# 内置模块

EMQX Broker 将主题重写、代理订阅等功能通过内置模块的形式提供,支持用户随时启停模块来启停相应功能。目前内置模块已支持以下功能:

Module NameFeature
emqx_mod_delayed延迟发布
emqx_mod_topic_metrics主题指标统计
emqx_mod_subscription代理订阅
emqx_mod_acl_internal内置 ACL
emqx_mod_rewrite主题重写
emqx_mod_presence上下线通知

EMQX Broker 为内置模块提供了命令行接口HTTP API,用户可以很轻松地通过这些接口来启停模块,例如:

$ ./emqx_ctl modules load emqx_mod_delayed
Module emqx_mod_delayed loaded successfully.
1
2
$ curl -i --basic -u admin:public -X PUT "http://localhost:8081/api/v4/nodes/emqx@127.0.0.1/modules/emqx_mod_delayed/load"

{"code":0}
1
2
3

当然,用户也可以在 Dashboard 上完成这些操作,包括查看模块状态,这也更加常用。

EMQX Broker 在默认情况下会启动 emqx_mod_acl_internalemqx_mod_presence 这两个模块,即内置 ACL 与上下线通知功能默认开启。用户可以修改 EMQX data 目录下的 loaded_modules 文件来更改默认启动的模块。

默认不启动

{emqx_mod_rewrite, false}.
1

默认启动

{emqx_mod_rewrite, true}.
1