本地模拟启动分布式遇到问题
使用maven打包后端
target目录下右键jar包打开控制台
java -jar .\partner_matching_backend-0.0.1-SNAPSHOT.jar --server.port=8081
一个端口只能启动一个应用,指定8081就可以覆盖默认参数了
8081端口启动成功
用户的登录态是记录到服务器上的
用swagger+Knife4j登录
前端在向后端发请求的时候带了一个JSESSIONID
后端打个断点
与JSESSIONID一样
然后用8081端口的swagger调试,getCurent,诶,怎么取不到,然后8080的也取不到了
应该是由于同一个前端,JSESSIONID被覆盖掉了
8080端口登录一下
8081端口登录一下
为什么JSESSIONID会变,因为是同一个域名
种 session 的时候注意范围,cookie.domain
比如两个域名:
aaa.abc.com
bbb.abc.com
如果要共享 cookie,可以种一个更高层的公共域名,比如 abc.com
用户在 A 登录,所以 session(用户登录信息)存在了 A 上
结果请求 B 时,B 没有用户信息,所以不认识。
解决方案:共享存储 ,而不是把数据放到单台服务器的内存中
如何共享存储?