欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

《果然新鲜》电商项目(41)

时间:2023-07-09
文章目录

引言1.实现思路2.总结 引言

前面把单点登录的实现大致讲解完了,本文是单点登录的最后一篇,主要讲解单点登录的高可用

1.实现思路

目前「电商」项目里的SSO服务是单个的,如果SSO服务出现了宕机或者崩溃,那么整个系统就登录不了了,所以这个问题是急需要解决的。那么如何实现SSO服务的高可用呢?

下面我直接贴出实现SSO服务高可用的原理图:

从上图可知,要实现SSO服务的高可用可以通过Nginx来实现。

首先客户端会请求Nginx,传入请求地址,如:http://taodong.ssoserver.com。这个时候Nginx会通过负载均衡机制去选择其中一台SSO Server,比如选中了SSO Server1,而此时SSO Server1刚好宕机了。Nginx发现故障后,进行故障转移,转移到别的SSO Server,如:SSO Server2。SSO Server2执行登录功能,更新数据库和Redis。由于Redis和数据库是多台SSO Server共用的,所以不会造成共享失败的问题。

附带贴上Nginx的配置内容:

upstream backServer{ server 127.0.0.1:8078; server 127.0.0.1:8079;}server { listen 80; server_name guoranxinxian.ssoserver.com; location / { proxy_pass http://backServer; ###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间 proxy_connect_timeout 1s; ###nginx发送给上游服务器(真实访问的服务器)超时时间 proxy_send_timeout 1s; ### nginx接受上游服务器(真实访问的服务器)超时时间 proxy_read_timeout 1s; index index.html index.htm; } }

2.总结

本文主要讲解SSO 单点登录系统通过Nginx来实现高可用的思路。

当然,如果SSO Server利用到了客户端的Session,如果要处理Session 共享的问题,可以使用Spring-Session,前面有讲解过了《解决分布式Session共享问题》

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。