1.网络协议的转化:通常这个已经由各种框架给封装掉了,我们需要构建的类要么是被注解的bean,要么是继承了某个接口的bean。 2.统一鉴权:比如在一些需要AppKey+Secret的场景,需要针对某个租户做鉴权的,包括一些加密串的校验 3.Session管理:一般在面向用户的接口或者有登陆态的,通过Session或者RPC上下文可以拿到当前调用的用户,以便传递给下游服务。 4.限流配置:对接口做限流避免大流量打到下游服务 5.前置缓存:针对变更不是很频繁的只读场景,可以前置结果缓存到接口层 6.异常处理:通常在接口层要避免将异常直接暴露给调用端,所以需要在接口层做统一的异常捕获,转化为调用端可以理解的数据格式 7.日志:在接口层打调用日志,用来做统计和debug等。一般微服务框架可能都直接包含了这些功能。 当然,如果有一个独立的网关设施/应用,则可以抽离出鉴权、Session、限流、日志等逻辑,但是目前来看 API网关也只能解决一部分的功能,即使在有API网关的场景下,应用里独立的接口层还是有必要的。 答复内容摘自《2021技术人的百宝黑皮书》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/ebook/download/7436
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。