spring-session+redis+zuul session共享示例

本文介绍了如何使用Spring Session、Redis和Zuul在分布式系统中实现Session共享。通过示例展示了从工程组件配置、POM文件、服务注册中心、网关路由、用户服务和购买服务的详细设置,以及项目测试过程,演示了在同一Redis服务中不同应用间共享Session的实现。
摘要由CSDN通过智能技术生成

分布式系统中,session共享方案长借助于数据库,将session存放于数据库中,多个应用客户端共连一个数据库,以此达到session共享的方案。数据库中,redis在session共享中通常作为第一选择,spring框架提供了一个集成httpsession和redis的解决方案,这篇文章,就展示spring-session和redis共享session的示例。

工程组件说明

  1. servicecenter 服务注册中心
  2. zuul 网关
  3. UserManagerA 用户服务A
  4. UserManagerB 用户服务B
  5. BuyManager 购买服务

其中,servicecenter单纯做注册中心,zuul做网关路由功能。UserManagerA 和 UserManagerB作为用户服务两台应用服务,BuyManager作为一个购买服务。

用户登录session处理在UserManagerA 和 UserManagerB 服务中,在任意一台服务创建session会话后,在另外一台服务中都可以看到。BuyManager作为另外的一台服务,将展示同一个redis服务中的不同应用可以共享到session信息。

工程代码示例

pom文件

使用spring-session redis方案时,引用的jar支持

		<!--redis的依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session-data-redis</artifactId>
		</dependency>

其余各项目依赖,根据项目须要引入。

servicecenter

注册中心无其它代码内容,仅一个注册中心配置项文件,设置注册中心地址 localhost:8761

server:
  port: 8761 #服务注册中心端口号
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false #是否向服务注册中心注册自己
    fetchRegistry: false #是否检索服务
    serviceUrl: #服务注册中心的配置内容,指定服务注册中心位置
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

zuul

网关做路由分发功能

设置网关端口号5000,设置注册中心地址。设置路由分发策略,将/um开头服务分发到um服务实例;将/bm开头服务分发到bm服务实例。

# 服务注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
# 设置程序端口号为5000,服务名为zuul-service
server.port=5000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值