spring boot와redis 세션 공유 강좌 구현

3879 단어 springbootredis
만약springboot에 대해 잘 모르신다면 다음 두 문장을 참고하시기 바랍니다.
Spring Boot 빠른 시작 자습서
Spring Boot 빠른 시작 가이드
이번에 가져온 것은springboot+redis가 세션 공유를 실현하는 강좌입니다.
spring boot 문서에서 @EnableRedisHttpSession 을 추가하여 spring session 지원을 시작합니다. 설정은 다음과 같습니다.

@Configuration 
@EnableRedisHttpSession 
public class RedisSessionConfig { 
} 
@EnableRedisHttpSession 이 주석은 spring-session-data-redis에서 제공한 것이기 때문에pom.xml 파일에 추가:

<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> 
다음은 응용 프로그램에 필요합니다.properties에서 redis 서버의 위치를 설정했습니다. 여기서 우리는 이 컴퓨터를 사용합니다.

spring.redis.host=localhost 
spring.redis.port=6379 
이렇게 해서 가장 간단한springboot+redis가 세션 공유를 실현하면 완성됩니다. 다음은 테스트를 진행하겠습니다.
우선 두 개의tomcat 서비스를 시작합니다. 포트는 각각 8080과 9090입니다. 응용 프로그램에서.properties에서 설정 [다운로드 주소]:
server.port=8080  
다음 컨트롤러를 정의합니다.

@RestController 
@RequestMapping(value = "/admin/v1") 
public class QuickRun { 
 @RequestMapping(value = "/first", method = RequestMethod.GET) 
 public Map<String, Object> firstResp (HttpServletRequest request){ 
  Map<String, Object> map = new HashMap<>(); 
  request.getSession().setAttribute("request Url", request.getRequestURL()); 
  map.put("request Url", request.getRequestURL()); 
  return map; 
 } 
 @RequestMapping(value = "/sessions", method = RequestMethod.GET) 
 public Object sessions (HttpServletRequest request){ 
  Map<String, Object> map = new HashMap<>(); 
  map.put("sessionId", request.getSession().getId()); 
  map.put("message", request.getSession().getAttribute("map")); 
  return map; 
 } 
} 
시작 후 액세스 테스트를 진행합니다. 먼저 8080 포트의tomcat에 방문하여 [다운로드 주소]를 가져옵니다.

{"request Url":"http://localhost:8080/admin/v1/first"} 
이어서 8080 포트의 세션을 방문하여 돌아갑니다.

{"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":http://localhost:8080/admin/v1/first}
마지막으로 9090 포트의 세션에 다시 액세스하여 다음을 반환합니다.

{"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":http://localhost:8080/admin/v1/first}
이를 통해 알 수 있듯이 8080은 9090 두 서버가 결과를 반환하는 것과 같이session의 공유를 실현했다
9090 포트의first에 다시 액세스하면 다음을 수행합니다.

{"request Url":"http://localhost:9090/admin/v1/first"} 
두 서버의 세션은 모두 반환됩니다.

{"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":"http://localhost:9090/admin/v1/first"} 
springboot+redis를 통해session의 공유를 실현하는 것은 매우 간단하고 용도도 매우 크며nginx와 부하 균형을 맞추면 분포식 응용을 실현할 수 있다.
이번 redis는 주종, 읽기, 쓰기 분리 등 설정을 하지 않았습니다(_(:з」∠)_사실은 블로거가 게으르다. 아직 시도해 본 적이 없다...)
그리고nginx의 단일 고장도 우리가 응용하는 장애물이다...앞으로 이번 블로그에 대한 개선 버전이 있을 수 있습니다. 예를 들어zookeeper를 사용하여 부하 균형을 맞출 수 있으니 기대해 주십시오.
자, 이만 마치겠습니다. 상술한 것은 편집자가 여러분께 소개해 드린spring boot과redis가 세션 공유 강좌를 실현하는 것입니다. 여러분께 도움이 되었으면 합니다. 궁금한 점이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 답장을 드리겠습니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기