为什么我们需要挡板程序?
在应用开发过程中难免会有发送短信验证码、调用人脸识别、压力测试等需要调用外部接口的情况。大多数外部接口都会有调用限制或者需要收费等。如果我们需要进行压力测试、目的接口实际未完成开发或者对方不支持在当前开发环境测试就会有诸多不便。
因此一个挡板应该满足如下要求:
- 接入简单、灵活
- 挡板高性能、高可用,能横向扩展
- 部署简单,支持热部署
- 能够实现简单的业务逻辑
- 响应可控、可灵活切换。或特定情况响应特定内容。
实现方式
依赖组件列表:
- spring-boot-starter-web : 构建Web服务端。
- beetl[http://ibeetl.com]: 灵活构建响应报文,并支持简单业务逻辑,热更新且性能高。
- mongoDb: 存储挡板配置信息。
- spring-boot-starter-actuator: 监控,配合其他应用系统做链路追踪。【可选】
- spring-cloud-starter-alibaba-nacos-discovery: 注册中心、配置中心【可选,提供微服务用】
- ognl:用于动态获取请求数据。
功能块
百分比控制响应
按字段控制响应
MongoDb与Beetl集成