Kun Wang


  • Home

  • Categories

  • About

  • Archives

  • Tags

  • Commonweal 404

login

Posted on 2017-08-18

微服务下登陆方式

参考 Email: david.borsos@opencredo.com

SSO 单点登陆

角色:客户端、app服务器、认证服务器
流程:

  • 1、客户端请求
  • 2、app服务器检查local用户状态,没有登陆,重定向到认证服务器
  • 3、用户到认证服务器登陆,登陆成功返回token
  • 4、用户使用token重新发起请求
  • 5、app服务器向认证服务器校验token并请求user details.

问题:

  • 用户登陆不透明
  • SSO服务器单点故障
  • 内部流量爆炸
  • 每个交换机都需要SSO

分布式会话

角色:client,server,Authentication server,分布式会话中心
配置环境:微服务和认证服务器都需要连接到分布式的存储中心
流程:

  • 1、用户请求
  • 2、server发现没有登录,重定向到Auth Server
  • 3、用户登录,a、把用户登录状态写入session store;b、设置session id 返回client
  • 4、用户使用session id登录
  • 5、server根据session id从 session store读取更新登录状态

客户端 token

角色:client, server, auth server
流程:

  • 1、client 请求 server
  • 2、server 发现没登陆重定向到 auth server
  • 3、client 在auth server登录,获取token
  • 4、client使用token请求server,server不跟auth server进行交互,server能自己解析token,能够校验token

token 可以采用JWT的格式

JWT分为三段

  • heaer
  • body
  • signature

JWT的特点

  • 标准
  • 简单
  • 可扩展
  • 支持各种签名(SHA、RSA)
  • lib支持好
  • 支持对称加密,公钥、私钥加密;

客户端 toke+API网关

角色:client、api gateway、token store、server、auth server

流程:

  • 1、client 请求
  • 2、没有认证转发的到 auth server
  • 3、认证成功,返回token
  • 4、网关转换token=>opaque
  • 5、client 使用opaque token
  • 6、网关转换opaque token=>token
  • 7、server解析token

登出:
撤销在网关处的token

总结

nginx

Posted on 2017-08-17

高性能Web服务器详解(Nginx)

服务器架构

模块划分

  • 核心功能模块
  • 标准HTTP模块
  • 可选HTTP模块
  • 邮件服务模块
  • 第三方模块

事件驱动模型

  • select库:轮询所有事件描述符集合中的每一个事件描述符;
  • poll库:select为读、写、异常时间分别创建一个描述符集合,需要轮询三个集合;poll创建一个集合,在每个描述符结构上设置标志,轮询的时候同时检查;
  • epoll库:对上面的优化,时间描述符个数;轮序策略,活跃度的描述符进行操作;节省内核到用户空间的一次数据拷贝;
  • kqueue 库:是对特定BSD平台的模型,支持条件触发(水平触发,只要满足条件就发一个事件)和边缘触发(每当状态变换时,触发一个事件)。

线程类型

  • 主进程
  • 工作进程
  • Cache Loader & Cache Manager

nginx的时间管理

传统的系统需要中断、陷入内核。设计用户态和内核态的切换,开销大。gettimeofday()函数调用系统调用sys_gettimeofday(),但是在x86_64体系中,该系统调用使用vsyscall获取内核信息,避免中断。从而会提高效率。

nginx的内存管理

nginx的工作进程

配置

杂记

概念篇

  • 惊群:当一个网络连接过来的时候,多个线程会被唤醒,但是最终只有一个线程接受请求,所以其他线程的唤醒操作都是浪费的。为避免线程对连接的争抢,

    1
    accept_mutext on | off // defualt is on
  • 正向代理、反向代理:正向代理,我们的角色是客户端,目的是要访问外网的资源;在反向代理服务器中,我们的角色是站点,目的吧站点的资源发布出去让其他客户端能够访问。

mysql

Posted on 2017-08-11

mysql索引优化的问题

Kun Wang

Kun Wang

3 posts
3 tags
© 2017 Kun Wang
Powered by Hexo
Theme - NexT.Pisces