Spring Boot 인터페이스 멱 등 플러그 인 용법 예시 분석
멱 등 성 은 원래 수학 적 개념 으로 공식:f(x)=f(f(x))가 성립 할 수 있 는 수학 적 성질 이 더 라 도.프로 그래 밍 분야 에 사용 하면 같은 시스템 에 대해 같은 조건 을 사용 하고 한 번 의 요청 과 중복 되 는 여러 번 의 요청 이 시스템 자원 에 미 치 는 영향 이 일치 하 다 는 뜻 이다.
멱 등 성 은 분포 식 시스템 디자인 에서 매우 중요 한 개념 이다.이런 성질 을 가 진 인 터 페 이 스 는 디자인 할 때 항상 이러한 이념 을 가진다.인 터 페 이 스 를 호출 하 는 데 이상 이 발생 하고 반복 적 으로 시도 할 때 시스템 이 감당 할 수 없 는 손실 을 초래 하기 때문에 이런 현상의 발생 을 막 아야 한다.
멱 등 을 실현 하 는 방식 은 매우 많 으 며,현재 요청 토 큰 체 제 를 바탕 으로 적용 범위 가 비교적 넓다.그 핵심 사상 은 모든 조작 에 유일한 증 거 를 만 드 는 것 이다.즉,token 이다.하나의 token 은 작업 의 모든 단계 에서 한 번 의 실행 권 만 있 고 실행 에 성공 하면 실행 결 과 를 저장 합 니 다.중 복 된 요청 에 대해 같은 결 과 를 되 돌려 줍 니 다《멱 등 성 평론》을 참고 하 다.
멱 등 처리 가입 의존 실현
com.pig4cloud.plugin idempotent-spring-boot-starter 0.0.1
Redis 설정링크 는 기본적으로 설정 하지 않 아 도 됩 니 다.이론 은 지원redisson-spring-boot-starter모든 배치
spring:
redis:
host: 127.0.0.1
port: 6379
인터페이스
@Idempotent(key = "#key", expireTime = 10, info = " ")
@GetMapping("/test")
public String test(String key) {
return "success";
}
독립 스 레 드 10 개 테스트 요청보기 결 과 를 실행 하면 10 개의 요청 이 한 개 만 성공 합 니 다.
백 스테이지 이상 보고 오류,9 개 이상 보고 오류 가 예상 을 만족 시 킵 니 다.
idempotent 설명
프로 세 스 디자인 참조
1.요청 이 시작 되 기 전에 key 조회 에 따라 결 과 를 찾 을 수 있 습 니 다.오류 가 발생 했 습 니 다.결 과 를 찾 을 수 없습니다:key-value-expireTime key=ip+url+args 에 저장 합 니 다.
2.요청 이 끝 난 후 키 를 삭제 합 니 다.키 가 존재 하 든 없 든 삭제 할 지 설정 할 수 있 습 니 다.
3.expireTime 만 료 시간,요청 카드 가 죽 는 것 을 방지 하고 계속 막 힐 것 입 니 다.만 료 시간 을 초과 하면 자동 으로 만 료 시간 이 업무 수행 시간 보다 많 고 대충 평가 해 야 합 니 다.
4.이 방안 은 인터페이스 요청 차원 에서 직접 자 릅 니 다.
5.기한 이 지난 시간 은 업무 수행 시간 보다 커 야 한다.그렇지 않 으 면 업무 요청 1 이 들 어 와 서 아직 실행 중이 다.전단 에 마스크 를 하지 않 았 거나 사용자 가 페이지 를 넘 긴 후에 다시 중복 요청 을 한다.2.업무 차원 에서 볼 때 결 과 는 기대 에 부합 되 지 않 는 다.
6.delKey=false 를 권장 합 니 다.업무 가 완료 되 더 라 도 키 를 삭제 하지 않 고 expireTime 을 강제로 잠 그 는 시간 입 니 다.예방 5 의 상황 발생.
7.사고 실현:같은 요청 ip 과 인터페이스,같은 매개 변수 에 대한 요청 은 expireTime 에서 여러 번 요청 하면 한 번 만 성공 할 수 있 습 니 다.
8.페이지 커버,데이터베이스 차원 의 유일한 색인,먼저 조회 하고 추가 하 는 등 처리 방식 을 모두 처리 해 야 합 니 다.
9.이 주 해 는 멱 등에 만 사용 되 며 잠 금 에 사용 되 지 않 습 니 다.100 개 와 이런 압력 측정 을 병행 하면 문제 가 발생 할 수 있 습 니 다.이런 장면 에서 도 의미 가 없습니다.실제 사용자 도 1s 또는 3s 내 에 50 개 또는 100 개의 중복 요 구 를 수 동 으로 보 냈 거나 약 한 네트워크 에서 100 개의 중복 요 구 를 하지 않 습 니 다.
총결산
pig-mesh/pig
pig-mesh/idempotent-spring-boot-starter
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.