IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    分离Web Service中的鉴权业务

    longhao (longtask@gmail.com)发表于 2010-09-19 00:33:20
    love 0

    通过分析业务日志,发现web service系统中大部分的问题日志都是因为鉴权不通过。包括3个方面的内容:

    • 用户校验直接不通过,
    • 用户没有相关权限,
    • 请求相关参数校验错误。

    当通过鉴权,请求到业务系统的内部,基本没有什么问题出现。如果有问题主要是系统的bug了。所以,到达一定的规模,需要对系统的鉴权模块做一个分离,让鉴权通过的请求能够跳转到系统中。如果系统规模较小,可以考虑继续把鉴权和业务系统放在一起,规模稍大一点,就需要在apache反向代理这层完成鉴权的大部分功能。

    cache副本

    解决鉴权问题,需要更少的访问到数据库,考虑使用cache。在jdk中有oscache,ehcache等框架可以选用,如果你用spring的话,建议使用ehcache,因为spring集成了ehcache,而且ehcache支持分布式。如果相关数据不存在,则向数据库中查询,如果存在,则直接在cache中查找,当然更新数据库相关信息的时候不要忘记update cache。具体ehcache使用请参考官方文档

    请求量再次增大的时候,考虑使用memcached来分布cache系统中读较多的信息。用户请求先到鉴权系统去处理,然后再rewrite到业务系统中去。如何使用memcached的话题内容有点多,暂时先不讨论。

    后续用户需求一些restful的API,然后我们根据需求来讨论如何实现restful的web service。当然,简单的实现可以满足需求,不建议潮流化的玩rest。



沪ICP备19023445号-2号
友情链接