horizon整体介绍
整体架构
devspore-horizon是DevSpore开发框架提供的一种插件机制,您可以在请求被处理前(Entry)和应答发送前(Exit)调用DevSpore预置的,也可以使用自己开发的插件,可用于实现统一的操作前认证、鉴权,操作后消息发送、缓存更新、审计等功能。
devspore-horizon架构图如下:
- Entry类插件采用的是责任链模式(chain of resposibility),所有的插件按照被注册的顺序依次调用,其中有一个插件抛出异常则整个请求返回失败。
- Exit类插件采用的是观察者模式(Observer),所有的插件作为观察者注册,DevSpore运行时库里的Publisher模块同时调用所有的观察者插件(插件可能被并发执行且执行的顺序随机),插件执行的结果不能影响请求返回。
实现流程
devspore-horizon整体流程概括如下:
典型案例
devspore-horizon允许用户用内置的鉴权和消息发送插件,也支持用户自定义插件来自主实现鉴权(认证等)和消息发送(审计等)。
下图为一个典型的使用案例: