redission-바람둥이 : 빠르게 다중 시스템 배포 한에서 실현가 배포하는

원본 주소 :  http://blog.jboost.cn/2019/06/29/session-redis.html

 

간단하고 빠른에 대한 몇 가지 초기 프로젝트, 우리는 독립형 환경의 요구 사항을 만족하지 않은,하지만, 사업의 확장을 독립형 개발 및 배치를하고, 또는 가용성 요구 사항을 개선하고 있습니다. 독립형 멀티 기계 스위치를 배치하는 배치 (시작 토큰 기반 인증이 무시 될 수있는 경우) 세션을 공유 할 수있는 중요한 부분이 될 수있다. 이 문서는 오픈 소스 프로젝트의 바람둥이 세션 관리 기반 레디 스 설명 : redission - 바람둥이, 코드가 침입 빠르게 세션 공유를 실현할 수 없습니다.

1. 소개

redisson입니다 비슷한 레디 스 클라이언트가, 그 기능은 jedis의 일부에 비해 풍부한 것으로 jedis. : redission-바람둥이는 바람둥이 세션 레디 스 프로젝트 매니저, 프로젝트 주소를 기반으로 https://github.com/redisson/redisson/tree/master/redisson-tomcat  . 다른 구현보다 효율적인 프로젝트 저장, 기록 동작 및 더 최적화 비교. 호출 할 때마다 세션 매개 변수가되는 HttpSession.setAttribute경우 레디 스 작성하지만, 다른 솔루션은 일반적으로 항상 세션의 전체 시퀀스 이후에 기록 될 수 있습니다.

2.

  1. redisson - 모든-3.11.0.jar , redisson - 바람둥이 - 8-3.11.0.jar 바람둥이의 lib 디렉토리에 두 개의 항아리 패키지를 다운로드 (tomcat8 대한이, 다른 버전은 위의 항목 페이지에서 다운로드 링크 주소에서 확인하실 수 있습니다) .

  2. 바람둥이 conf 디렉토리에 다음과 같은 구성 파일의 context.xml 추가

    < 관리자 클래스 명 = "org.redisson.tomcat.RedissonSessionManager" 
    의 configPath가 = "$ {/conf/redisson.conf catalina.base}"  
    readMode = "MEMORY" 의 UpdateMode = "AFTER_REQUEST" broadcastSessionEvents = "FALSE" />

  중

  • 의 configPath : Redisson 포인트 또는 프로파일의 YAML JSON 포맷은 3 단계에서 설명한다.
  • readMode는 : 세션 속성 모드를 참조하십시오. 가능한 값 1. MEMORY은, 패턴이 동시에 세션 속성은 로컬 세션과 레디 스 톰캣에 저장되며, 업데이트 세션 레디 스 톰캣 지역 행사 ;. 2 레디 스, 레디 스에 저장 만 세션 속성에 의해 후속 세션에 전파됩니다. 기본값은 레디 스입니다.
  • UpdateMode를 : 갱신 모드 세션 특성을가집니다. 가능한 값은 1 DEFAULT, 세션은 속성 setAttribute이 AFTER_REQUEST는 각 요청 후, 모든 레디 스 세션 속성을 저장하는 ;. 레디 스 방법에 저장. 기본값은 기본값입니다.
  • broadcastSessionEvents : true로 설정하면 sessionCreated 및 sessionDestroyed 이벤트가 모든 인스턴스 바람둥이에 방송되며, 등록 된 모든 HttpSessionListeners 리스너가 트리거됩니다. 기본값은 false입니다.
  1. 다음과 같이 바람둥이의 conf 디렉토리 redisson.conf의 새로운 구성 파일을 읽
    { 
      "singleServerConfig": { 
        "idleConnectionTimeout"10000, 
        "ConnectTimeout이"10000, 
        "타임 아웃"3000, 
        "retryAttempts": 3, 
        "RetryInterval을": 1500, 
        "비밀번호": "123456", 
        "subscriptionsPerConnection": 5, 
        "CLIENTNAME"NULL, 
        "주소": "레디 스 : //127.0.0.1 : 6379", 
        "subscriptionConnectionMinimumIdleSize"1 
        "subscriptionConnectionPoolSize"50 
        "connectionMinimumIdleSize"24 
        "connectionPoolSize"64, 
        "데이터베이스" 0, 
        "dnsMonitoringInterval"5000 
      }, 
      "스레드"16 
      "nettyThreads"32, 
      "코덱"{ 
        "클래스": "org.redisson.codec.FstCodec" 
      }, 
      "transportMode": "NIO" 
    }

    상기는 패스워드, 어드레스가 그 값을 수정하여 상기 레디 스 환경 설정 독립형 모드이다. 클러스터 모델의 경우, 구성 파일

    { 
      "sentinelServersConfig": { 
        "idleConnectionTimeout"10000, 
        "ConnectTimeout이"10000, 
        "타임 아웃"3000, 
        "retryAttempts": 3, 
        "RetryInterval을"1500, 
        "failedSlaveReconnectionInterval"3000, 
        "failedSlaveCheckInterval"60000, 
        "암호 "NULL, 
        "subscriptionsPerConnection "5 
        "CLIENTNAME "NULL, 
        "로드 밸런서 "{ 
          "클래스 ":"org.redisson.connection.balancer.RoundRobinLoadBalancer " 
        } 
        "subscriptionConnectionMinimumIdleSize "1 
        "을 subscriptionConnectionPoolSize "50, 
        "slaveConnectionMinimumIdleSize": 24,  
        "slaveConnectionPoolSize"64
        "masterConnectionMinimumIdleSize": 24, 
        "masterConnectionPoolSize"64 
        "readMode": "SLAVE", 
        "subscriptionMode": "SLAVE", 
        "sentinelAddresses": 
          "레디 스 : //127.0.0.1 : 26379", 
          "레디 스 : // 127.0.0.1:26389 " 
        , 
        "마스터 이름 ":"mymaster ", 
        "데이터베이스 "0 
      }, 
      "스레드 "16 
      "nettyThreads "32, 
      "코덱 "{ 
        "클래스 ":"org.redisson.codec .FstCodec " 
      }, 
      "transportMode ":"NIO " 
    }

     

  2. 우리는로드 밸런싱을 달성하기 위해 nginx를 사용할 수 있습니다, 참조 구성 

    상류 cnserver { 
      서버 127.0.0.1:8080 중량 = 2 fail_timeout = 10S의 max_fails = 1; 
      서버 127.0.0.1:8081 중량 = 2 fail_timeout = 10S의 max_fails = 1; 
    } 
    
    서버 { 
      80을 듣고; 
      서버 _ 로컬 호스트; 
      인덱스있는 index.html index.htm으로; 
    
    
    
      위치 / 휴식 / { 
        인덱스 index.html을; 
        proxy_pass에 http : // cnserver / 휴식 /; 
      } 
    }

          위의 모든 배포에 배포 한 다중 시스템 구성을 달성하기 위해 사용 redisson - 바람둥이입니다.

3. 요약

기술 인프라 서비스의 발전과 함께 진화하고있다. 사업 개발, 사용자의 수의 초기 단계에서 사업의 복잡성은 종종 간단한 단일 아키텍처를 사용하여, 빠른 온라인 검증을 달성하기 위해, 상대적으로 낮다. 이 프로젝트는 지속적인 최적화 및 업그레이드 사업 확장과 성장을 계속 할 수있는 기회를 가질 수밖에 동안 많은 프로젝트, 시간 아키텍처 진화 업그레이드의 GG 있었다하지 않을 수 있습니다. redisson-Tomcat은이 문서를 신속하게에만 세션 관리 측면에서, 물론, 다중 시스템 지원으로 전환하는 데 도움이 될 수 있습니다 독립 실행 형 프로그램을 설명합니다. 이 같은 파일 업로드, 지원을 배포 일반 작업과 같은 다른 문제에 관해서 경우, 다른 따라 조정해야합니다.



내 개인 블로그 주소 : http://blog.jboost.cn
내 GitHub의 주소 : https://github.com/ronwxy
내 마이크로 채널 대중 번호 : jboost-ksxy (뿐만 아니라 실제 건조 기술 공개 번호, 환영
주의) ------------------------------------------------ ---------------
마이크로 채널 공개 수

추천

출처www.cnblogs.com/spec-dog/p/11105943.html