sso 单点登录怎么做集群

2019-12-09 22:31:19 +08:00
 jwh199588

因为项目的缘故,在环境部署到正式环境,进行压力测试的时候,发现 sso 单点登录的压力特别的高, 现在项目结构是不能调整了,有没有办法针对 sso 做负载均衡,

4075 次点击
所在节点    程序员
23 条回复
likuku
2019-12-09 23:13:28 +08:00
sso 入口是怎么个形式的服务? https? udp? 承载的服务 /服务器 可以横向多机 /实例么?

可以的话,那就前面挂个负载均衡。
lhx2008
2019-12-09 23:17:41 +08:00
seesion 用 key 的形式抽出来放到 redis 上面,sso 本身无状态,横向扩展就可以了,redis 不够就做 redis 集群,至于登录查数据库这里随便个 mysql 主从就能撑住了
jugelizi
2019-12-09 23:18:39 +08:00
登录压力高?
opengps
2019-12-09 23:19:40 +08:00
共享到内存中
likuku
2019-12-09 23:20:43 +08:00
session 传统就用 memcached 了,临时数据嘛,redis 太奢侈
solaro
2019-12-10 02:00:55 +08:00
@likuku memcache 的简单集群可真的比 redis 爽太多了。
xuanbg
2019-12-10 07:50:28 +08:00
楼主这有多少用户同时在线啊,sso 居然会撑不住?看看时间都花在什么地方吧,优化下代码应该就好了吧。
GoRoad
2019-12-10 08:02:38 +08:00
哪个朋友推荐的 去找哪个朋友
jwh199588
2019-12-10 09:33:24 +08:00
@likuku 使用了 apache 的负载均衡,但是在调用 /oauth/authorize 方法的时候,返回的 code 在另外一台 sso 上并不存在,所有获取 token 的时候,会报错
lihongjie0209
2019-12-10 09:43:36 +08:00
登录压力高??那这么多用户都查询一个复杂 SQL 你的系统直接就崩了?
jwh199588
2019-12-10 09:45:21 +08:00
@lihongjie0209 我是在做压测的时候,发现所有的用户都需要经过 sso,这样 sso 的压力会特别大,所以想做成集群
anyforever
2019-12-10 09:47:54 +08:00
难道你的用户都在时时刻刻在做登录操作么。。
lihongjie0209
2019-12-10 09:48:32 +08:00
@jwh199588 #11
多少 qps 啊, 压力大是指 CPU ? 内存?响应时间?
做集群是为了高可用还是高性能?
zsc8917zsc
2019-12-10 09:53:39 +08:00
@jwh199588 压测的时候是集中登录吧,现实情况登录压力都是分散的,很难有那么多用户集中登录的情景
jwh199588
2019-12-10 09:56:39 +08:00
@lihongjie0209 主要是因为是国产化平台,所以服务器的性能很低,所以想使用负载来做
lihongjie0209
2019-12-10 10:00:10 +08:00
那就找一台数据库服务器( mysql 或者 redis )做数据共享, 前面挂两个 sso, 再做一个反向代理就好了。
JamesMackerel
2019-12-10 10:05:11 +08:00
说的是 oauth 压力大吧,这个可以理解,毕竟每一次请求都会问一下你的 sso 服务器。按照上面老哥说的做个无状态,前面挂个 nginx 就可以了。
izoabr
2019-12-10 11:22:08 +08:00
@jwh199588 #11 但是业务环境中,用户登陆行为是分散的,而且有 session 加持不是每个请求都要去认证,所以那个压力是一次性的呀。
index90
2019-12-10 12:09:21 +08:00
不如先说说你的 SSO 是如何实现的吧,毕竟现在一百个人有一百种“SSO”实现方式……
ecloud
2019-12-10 22:42:41 +08:00
天生就有很好的集群支持的 SSO 是 kerberos

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/627433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX