nats
轻量级的MQ.
demo的场景
企业钉钉有个每分钟1500调用的限制,目前公司都是各个项目各自去触发, 但大家相对独立,所以没法进行全局的控制, 造成拥堵的时候超过限制导致发送失败.
这个demo 主要是想做一个全局的消息频率控制.
思路
独立一个服务,进行钉钉通知管理.
放出一个接口接收大家的推送任务
服务内部 需要一个持久化容器存储消息
按一定频率消费这些消息,如果失败需要重新放入队列
- 可以直接用数据库做队列
- 自建消息队列
如果是数据库的话,单独为这个服务搞一个,感觉没啥必要,也就一个表.
如果自建消息队列,以后其他消息还能使用,选个轻量的就好了.
这里最终选了nats.
为了支持持久化用的是nats-streaming
demo代码
package main |