api网关选型,api网关有什么用

  

  会话管理:因为http请求没有状态(要发送网络请求,需要先建立套接字链接,这将使浏览器与服务器建立通信通道。所有数据消息都是基于这个渠道提交的。由于服务器性能的限制,服务器在返回浏览器请求后会主动断开链接,并使用会话管理来区分不同请求的客户端。因此,引入了会话管理机制来指示BS之间的会话状态。   

  

  分布式会话管理:不同于传统的依赖于web服务器会话的会话管理状态,需要引入一个集中式的会话存储容器来标识分布式状态下BS终端之间的会话标识。本质上,会话管理是集中的,登录凭证放在中央管理系统中,如Redis、MemCache和database。每个服务器不依赖于自己的文件系统,而是通过中央管理机制获取会话登录凭证。   

  

     

  

     

  

  1.依赖于webserver的会话容器,很难定制集中式会话管理模式。   

  

  2.cookie跨域访问非常复杂。本质上,这种方式依赖cookie进行会话传输,cookie很难跨域访问。只有当植入cookie的服务器的域名与本次访问的服务器的域名匹配时,客户端才会将cookie发送给服务器。当前端和后端分离时,上一节的静态文件在静态资源服务器上,动态请求会发送到客户端的web服务器上,因此需要解决相应的跨域问题。   

  

  3.浏览器客户直接禁止cookie。   

  

     

  

  1.本质上还是基于cookie的管理方式,所以处理跨域访问问题比较复杂。   

  

  2.浏览器可以禁止cookie。   

  

     

  

  1.不依赖于浏览器的cookie机制,也不依赖于服务器的会话机制。类似于应用层,它自己进行会话管理。独立于浏览器的cookie禁用问题。   

  

  2.客户端必须有效地存储令牌,以确保每次调用时都可以获得令牌,并且令牌必须是安全的。   

  

  3.您需要应用代码处理来将标记添加到标头或接口参数中。   

  

  安全问题:   

  

  1.cookie不安全,被劫持的概率很高,存在xss和csrf攻击的问题。   

  

  2.代金券也可能被劫持来伪造请求。   

  

  3.使用https请求来防止泄漏。   

  

  4.服务器端风险控制的主动失效和失效机制。   

  

  接入层控制:   

  

  控制什么?API网关控制程序入口需要实现的逻辑,包括认证、流量控制、路由服务、记录调试或统计信息等。利用不同接入层框架的通用过滤功能实现。   

  

     

  

     

  

     

  

     

  

     

  

  服务调用及聚合: API网关被接入层控制路由后,进入核心服务调用环节,调用后端服务,聚合服务输出的数据后返回接入层。   

  

  两种型号:   

  

  1.“重型”访问:spring MVC dubbo   

  

     

  

  控制器层需要有清晰的业务逻辑。   

  

  优点:可以在web层灵活处理业务逻辑,聚合服务。   

  

  缺点:服务不够单一,web层过度的业务聚合能力会使服务不便于管理。   

  

  二、“轻”接入:春云zuul   

  

     

  

  优点:可以提供单一服务、可配置的访问。   

  

  缺点:聚合服务处理不灵活,聚合服务能力需要服务提供商提供。   

相关文章