消息插件搭配消息集成SDK使用,旨在对SDK基础功能进行扩展,为应用提供多种通用/个性化能力。
提供以下插件:
消息限流(kems-plug-mns-limit)
功能介绍
该插件支持对消息发送频率进行配置,当超出限流配置后,将会拒绝发送。
插件提供以下两种限流类型:
sign
:以接收对象标识为主体,设定周期内短信数量阈值。time
:以时间为主体,设定周期内短信数量阈值。
该插件同时支持对短信、微信和邮件三类通道进行限流配置。
插件使用
Redis
作为存储层介质,故应用需具备Redis
连接能力。
引用说明
maven配置
该示例集成了短信、微信和邮件,业务可按需引用、配置。
<dependency>
<groupId>com.kingengine.kems.plug</groupId>
<artifactId>kems-plug-mns-limit</artifactId>
</dependency>
<dependency>
<groupId>com.kingengine.kems.sdk</groupId>
<artifactId>kems-sdk-mns-sms</artifactId>
</dependency>
<dependency>
<groupId>com.kingengine.kems.sdk</groupId>
<artifactId>kems-sdk-mns-mail</artifactId>
</dependency>
<dependency>
<groupId>com.kingengine.kems.sdk</groupId>
<artifactId>kems-sdk-mns-wechat</artifactId>
</dependency>
yml配置
spring:
redis:
#Redis配置,参见#第五章功能组件/SDK类/Redis扩展封装
......
mns:
sms:
#短信集成配置,参见#第五章功能组件/SDK类/消息集成
......
plug:
limit:
#一个手机号180秒内只能发送一条短信
object: sign
period: 180
count: 1
mail:
#邮件集成配置,参见#第五章功能组件/SDK类/消息集成
......
plug:
limit:
#60秒内一共只能发送100条邮件
object: time
period: 60
count: 100
wechat:
#微信集成配置,参见#第五章功能组件/SDK类/消息集成
......
plug:
limit:
#一个openID在180秒内只能发送1条消息
object: sign
period: 180
count: 1
配置说明参阅
kems-plug-mns-limit/src/main/resources/META-INF/spring-configuration-metadata.json
扩展一个新插件?
1、引入消息集成定义模块。
<dependency>
<groupId>com.kingengine.kems.sdk</groupId>
<artifactId>kems-sdk-mns-def</artifactId>
</dependency>
2、实现接口
- 短信插件,实现
com.kingengine.kems.sdk.mns.def.service.ISmsPlugService
- 邮件插件,实现
com.kingengine.kems.sdk.mns.def.service.IMailPlugService
- 微信插件,实现
com.kingengine.kems.sdk.mns.def.service.IWeChatPlugService