在微服务中,实现各个微服务模块之间的Session共享,可以通过Spring Session和Redis技术来实现。
本示例直接将相同的配置添加到前面的两个微服务中,并测试两个接口以验证Session是否匹配。
1、maven配置,添加以下两个引用:
ependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter-data-redis/artifact id/ependencydependencygroupidorg.spring framework.session/groupidartifactidspring-session-data-redis/artifact id/dartid
@EnableRedisHttpSession 3,配置文件新设置项
#redis配置spring.redis.database=0spring.redis.host=localhost spring.redis.port=6379 spring.redis.password=:会话#设置会话刷新on _ save (表示在响应提交之前刷新缓存),如果有IMMEDIATE更新,则刷新缓存(spring.seed ) 选择使用redis作为session存储spring.session.store-type=redis #来设置session
@ restcontrollerpublicclassbookcontroller { @ get mapping ('/session ' ) public string session (httpservletrequestrequestrequest ) } ) { return ' session : ' request.getsession ().getId )、port : ' request.get server port ) ); } @ restcontrollerpublicclassplancontroller { @ get mapping ('/session ' ) publicstringsession ) httpservletrequestrequestrequest { } }
5、浏览器直接输入API地址
http://本地主机:8081/session
http://本地主机:8085/session
如果输出session id匹配,则配置成功。