关于使用Threadlocal带来的问题

来源:4-1 用户模块概要介绍

yejiajiajia

2019-04-10

老师,通过Threadlocal存储user信息,不就把网关/应用层变成有状态的了吗?如果对网关作集群的话,那用户刷新,去到别的网关,就取不到用户ID了,这不就出问题了吗?

突然又想到一个问题:如果在网关之前添加一个拦截器或者过滤器,将用户信息放到这个网关对应的拦截器中,就算网关做了集群,每次也能将用户信息存到对应的过滤器/拦截器中,那么就算集群转发到不同的网关,也能获取到用户信息,请问这会带来什么问题呢?

写回答

1回答

Allen

2019-04-10

这个好像之前有童鞋问过,  其实咱们这一次是每个网关收到request请求以后,都会重新查询用户信息, 所以不存在有状态这一说。

如果想弄好一点, 可以考虑加入Redis, 然后所有节点共享一个Redis数据

0
3
yejiajiajia
哦,这个问题解决了,因为我看到最终配置文件的忽略列表没有/user/getInfo了
2019-04-11
共3条回复

Dubbo主流版本打造仿猫眼项目 理解微服务核心思想

实战Dubbo项目+面试技巧,老司机带你畅游微服务

1410 学习 · 582 问题

查看课程