send(@Nonnull String templateId, Values context);
+
+ /**
+ * 指定模版{@link Template}并发送.
+ *
+ * 注意:不同等服务商使用的模版实现不同.
+ *
+ * 发送失败返回{@link Mono#error(Throwable)}.
+ *
+ * @param template 模版
+ * @param context 上下文
+ * @return 异步发送结果
+ * @see Mono#doOnError(Consumer)
+ * @see Mono#doOnSuccess(Consumer)
+ * @see Template
+ */
+ @Nonnull
+ Mono send(@Nonnull T template, @Nonnull Values context);
+
+ /**
+ * 关闭通知器,以释放相关资源
+ *
+ * @return 关闭结果
+ */
+ @Nonnull
+ Mono close();
+
+}
diff --git a/jetlinks-components/notify-component/notify-core/src/main/java/org/jetlinks/community/notify/NotifierManager.java b/jetlinks-components/notify-component/notify-core/src/main/java/org/jetlinks/community/notify/NotifierManager.java
new file mode 100644
index 00000000..a14dae29
--- /dev/null
+++ b/jetlinks-components/notify-component/notify-core/src/main/java/org/jetlinks/community/notify/NotifierManager.java
@@ -0,0 +1,39 @@
+package org.jetlinks.community.notify;
+
+import org.jetlinks.community.notify.template.Template;
+import reactor.core.publisher.Mono;
+
+import javax.annotation.Nonnull;
+
+/**
+ * 通知管理器,用于获取获取通知器.
+ *
+ * @author zhouhao
+ * @see 1.0
+ * @see Notifier
+ * @see DefaultNotifyType
+ * @see Template
+ * @see NotifyConfigManager
+ */
+public interface NotifierManager {
+
+ /**
+ * 获取通知器
+ *
+ * @param type 通知类型 {@link DefaultNotifyType}
+ * @param id 唯一标识
+ * @param 模版类型
+ * @return 异步获取结果
+ * @see NotifierProvider
+ */
+ @Nonnull
+ Mono> getNotifier(@Nonnull NotifyType type, @Nonnull String id);
+
+ /**
+ * 重新加载通知管理器
+ *
+ * @param id 通知管理器ID
+ * @return 加载结果
+ */
+ Mono reload(String id);
+}
diff --git a/jetlinks-components/notify-component/notify-core/src/main/java/org/jetlinks/community/notify/NotifierProperties.java b/jetlinks-components/notify-component/notify-core/src/main/java/org/jetlinks/community/notify/NotifierProperties.java
new file mode 100644
index 00000000..03777874
--- /dev/null
+++ b/jetlinks-components/notify-component/notify-core/src/main/java/org/jetlinks/community/notify/NotifierProperties.java
@@ -0,0 +1,59 @@
+package org.jetlinks.community.notify;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * 通知配置属性
+ *
+ * @author zhouhao
+ * @see NotifyConfigManager
+ * @since 1.0
+ */
+@Getter
+@Setter
+public class NotifierProperties implements Serializable {
+
+ private static final long serialVersionUID = -6849794470754667710L;
+
+ /**
+ * 配置全局唯一标识
+ */
+ private String id;
+
+ /**
+ * 通知类型标识
+ * @see NotifyType
+ */
+ private String type;
+
+ /**
+ * 通知服务提供商标识,如: aliyun ...
+ */
+ private String provider;
+
+ /**
+ * 配置名称
+ */
+ private String name;
+
+ /**
+ * 配置内容,不同的服务提供商,配置不同.
+ * @see NotifierProvider
+ */
+ private Map configuration;
+
+ public Optional