以下是一些简单的思考
一般开发模式
- 参考图
- 说明
我们提供多种api 实例,通过强大的规则以及路由能力提供api 以及数据的处理
基于rule 模式的
- 参考图
- 说明
将业务处理使用rule 解耦,同时提供了多实例的副本,其中rule 可以加入审计以及可视化展示,注意此图没有使用特性开关
对于复杂的处理我们还是需要依赖强大的路由能力解决(当然可以解决我们大部分的复杂业务问题)
基于rule+ Feature Flags
- 参考图
- 说明
api 的版本都是一致的,对于复杂业务处理基于rule,同时包含了审计以及dashboard,同样还是利用了强大的路由能力。
好处:版本一致,可以全局灵活的调整业务api以及功能的处理,对于复杂业务基于rule处理增强了业务的处理
说明
一些实践,特性开关不同语言的实现还是比较多的,java 的ff4j是一个不错的选择,java 的easy-rules 是一个简单、灵活的规则
引擎(drools 也是不错的)