国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

SpringCloud實現Redis在各個微服務的Session共享問題

2024-07-14 08:42:07
字體:
來源:轉載
供稿:網友

在微服務中,需要我們在各個微服務中共享Session,使用Redis來共享Session是一個很好的解決方法,Redis是運行在內存中,查取速度很快。

1.pom文件中添加依賴

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

2.使用Redis的session替換Spring的session

package com.xueqing.demo.sleuthserverhi;import org.springframework.context.annotation.Configuration;import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;/** * 添加redis配置類啟用redis代碼spring默認session */@Configuration@EnableRedisHttpSessionpublic class RedisSessionConfig {}

3.application.properties配置文件中添加redis配置

spring.redis.port= 6379spring.redis.host=localhost

4.啟動兩個端口以一樣的tomcat測試

package com.xueqing.demo.sleuthserverhi;import java.util.logging.Level;import java.util.logging.Logger;import brave.sampler.Sampler;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import javax.servlet.http.HttpServletRequest;@SpringBootApplication@RestControllerpublic class SleuthServerHiApplication {  public static void main(String[] args) {    SpringApplication.run(SleuthServerHiApplication.class, args);  }  private static final Logger LOG = Logger.getLogger(SleuthServerHiApplication.class.getName());  @Autowired  private RestTemplate restTemplate;  @Bean  @LoadBalanced  public RestTemplate getRestTemplate(){    return new RestTemplate();  }  @RequestMapping("/hi")  public String callHome(HttpServletRequest request){    LOG.log(Level.INFO, "calling trace service-hi ");    request.getSession().setAttribute("hi","111");    LOG.log(Level.WARNING, "加入成功");    return restTemplate.getForObject("http://localhost:8989/miya", String.class);  }  @RequestMapping("/info")  public String info(HttpServletRequest request){    LOG.log(Level.INFO, request.getSession().getAttribute("miya")+"");    LOG.log(Level.WARNING, "獲取成功");    return "i'm service-hi";  }  @Bean  public Sampler defaultSampler() {    return Sampler.ALWAYS_SAMPLE;  }}package com.xueqing.demo.sleuthservermiya;import brave.sampler.Sampler;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import javax.servlet.http.HttpServletRequest;import java.util.logging.Level;import java.util.logging.Logger;@SpringBootApplication@RestControllerpublic class SleuthServerMiyaApplication {  public static void main(String[] args) {    SpringApplication.run(SleuthServerMiyaApplication.class, args);  }  private static final Logger LOG = Logger.getLogger(SleuthServerMiyaApplication.class.getName());  @RequestMapping("/hi")  public String home(HttpServletRequest request){    LOG.log(Level.INFO, "hi is being called");    request.getSession().setAttribute("miya","111");    LOG.log(Level.WARNING, "加入成功");    return "hi i'm miya!";  }  @RequestMapping("/miya")  public String info(HttpServletRequest request){    LOG.log(Level.INFO, "info is being called");    LOG.log(Level.INFO, request.getSession().getAttribute("hi")+"");    LOG.log(Level.WARNING, "獲取成功");    return restTemplate.getForObject("http://localhost:8988/info",String.class);  }  @Autowired  private RestTemplate restTemplate;  @Bean  @LoadBalanced  public RestTemplate getRestTemplate(){    return new RestTemplate();  }  @Bean  public Sampler defaultSampler() {    return Sampler.ALWAYS_SAMPLE;  }}

5.注意事項:我用的springCloud版本為F版本需要Redis版本為2.8以上 如果不是2.8以上請升級,地址如下                                    

https://github.com/MicrosoftArchive/redis/releases

總結

以上所述是小編給大家介紹的SpringCloud實現Redis在各個微服務的Session共享,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太谷县| 屏东县| 洞口县| 武胜县| 九寨沟县| 淮安市| 郯城县| 泰来县| 琼结县| 宁海县| 连平县| 城口县| 遂宁市| 小金县| 海原县| 陆良县| 高要市| 沂源县| 铁力市| 微博| 海丰县| 肥西县| 丹棱县| 镇赉县| 浠水县| 出国| 太湖县| 钟祥市| 水城县| 凭祥市| 当雄县| 莱西市| 郧西县| 高要市| 信阳市| 无极县| 长春市| 闸北区| 娄底市| 沁水县| 西华县|