실시간 등급: 기술 아키텍처
실시간 등급은 정직, 감사 및 경제 관리 성을 유지하면서 수백만 개의 게임 이벤트를 수백 밀리 초 안에 업데이트 된 위치로 전환하는 서비스 묶음입니다. 아래는 요구 사항에서 작동까지의 실용적인 생성자입니다.
1) 요구 사항 및 목표
UI에 대한 대기 시간: 이벤트 도착에서 위치 업데이트까지 계속 200-300 ms p95.
정확성: 부하 및 고장 동안 "최고의 N "/분할/타이 브레이크의 올바른 상쇄.
가용성: 99 이상. 토너먼트 기간 동안 9%; 무결성 상실없이 성능 저하.
이념성: 운송 수준에서 "적어도 한 번" 발생 수준에서 "정확히 한 번".
규모: 지역/분할/팀별 수평 성장 (공의 상위 K).
감사: 변경 불가능한 규칙, 이벤트, 요금 및 문제 로그.
2) 시스템 다이어그램 (10,000 ft 레벨)
→ 이벤트 소음 → 스코어링 엔진 → 스트림 어그레 게이터 (Top-K/Top-M) → 쓰기 최적화 된 상점 → 핫 캐시/가장자리 → UI/Comms → 보상/클레임
차이나이티 프로그램: Snapshotter, Anti-Fraud/RG, Analytics & A/B, 감사/관찰.
3) 이벤트 섭취
작업: 중복, 버스트, 네트워크 손실에 대한 보호.
이념성: 각 이벤트에는 '이벤트 _ u' 가 있습니다. "보기/발생" 확인.
배달 의미론: 적어도 한 번은 포인트 회계를 정확히 한 번 전송합니다.
역압: 동적 배치가있는 대기열; 과부하 - "활성" 투어의 우선 순위.
시간 창: 늦은 이벤트 (예: 최대 90 초) - "재계산 창" 으로가는 경로.
시간: 클라이언트의 서버 UTC - 로케일 매핑 만.
4) 득점 엔진
원칙: 다양한 규칙, 승리 금지, 쉬운 롤백.
버전: 'rule _ set _ id' + 지역/분할당 기능 플래그.
모델: 승수 ('Score = round (100log2 (Win/Bet + 1)'), 로그 곡선이있는 승리 기반, 베팅 기반 (배경 메타 만).
오프셋 "최고의 N": 플레이어/일/투어 당 최고 N 구조를 유지하십시오. 형식별로 요약/중앙값.
예외: 보너스 펀드의 coef _ borness λ0. 5 '또는' 0 '; 스핀/일 한도; 공급자 당 할당량.
타이 브레이크: 1) 최종 속도의 초기 달성; 2) 더 큰 다양성; 3) 결정 론적 씨앗.
5) 스트림 집계 및 상위 K
목표: 전체 세트를 스캔하지 않고 위치를 신속하게 다시 계산합니다.
6) 스토리지: 쓰기 대 읽기
쓰기 최적화 된 저장: 발생 로그, 최고 N 상태, 타이 브레이크, 메타 데이터 (레코드/업데이트 만 해당).
읽기 최적화 된 상점 (쿼리): UI에 대한 비정규화 된 "쇼케이스": 상위 100, "나의 위치", "하루/분할 상단", 팀에 대한 기여.
스냅 샷터: 리더 보드의 시간당 "스냅 샷"; 빠른 롤백/재생, 보고서 및 감사.
일관성: 광범위한 목록의 경우 최종적으로 "나의 입장" 에 대한 글을 읽으십시오.
7) 현금 및 가장자리
핫 캐시: 파편에서 플레이어의 마지막 위치와 점수; TTL 1-5 초; 이벤트 별 장애.
에지 레이어/CDN은 정적 블록, "차가운" 결과 페이지이지만 발생하는 논리는 아닙니다.
폴백: 성능 저하- "청동 모드": UI가 X 초마다 업데이트되고 위젯이 무거워집니다.
8) 시간, 창문 및 가이드 라인
단일 "진정한" 시간: 서비스 UTC; UTC 마감일.
현지화 - 클라이언트의 시간 변환 (사용자 시간대).
경계: 네트워크 지연 (T&C) 에 대해 "소프트 창" 이 1-3 분 동안 닫힙니다.
클럭 스큐 모니터링, NTP 경고, 드리프트 측정 등의 워드 클래스로 이동합니다.
9) 늦고 중복 된 이벤트 처리
늦은 사건: "조정 창" 을 유지하십시오. 알림 피드에서 위치를 로컬로 다시 계산 + "고정" 조정.
복식: 좁은 창에서 '이벤트 _ u' + (플레이어, 게임, 베팅, ts); 잡지 "보았다".
Accrual demempotence-이벤트 → 적용된/roll _ back 상태로 트랜잭션 변경
10) 사기 방지 및 RG (파이프 라인에 내장)
행동 점수: 균일 한 간격, 초고속, "잡음 없음" -플래그.
연결 그래프: 일반적인 장치/IP/결제 → 클러스터; 수상, 수동 검증을 개최하십시오
쿼터 및 캡: N 최고의 시도/일, 하나의 슬롯/공급자에 대한 할당량, 스핀/일 당 캡 포인트.
보너스 자금: 승률/제거.
RG: 포인트는 자발적 한도 (시간/예금/손실) 내에서만 수여됩니다. 알림을 중단하십시오.
11) 다중 지역 및 결함 허용
지역별 자산: 지역 파편 + 글로벌 금고; 근접 라우팅.
RTO/RPO: RTO <15 분 (스냅 샷의 폴백), 발생시 RPO = 0 (데모 포트 로그 재생).
파티션 허용 오차: 네트워크 격차의 경우-로컬 리더 보드, 후속 통합 및 소프트 위치 보정.
FX 및 통화: 상품이 다른 통화라면 전환 순간 인 FX 버퍼 1-3% 를 수정합니다.
12) 보안 및 개인 정보 보호
데이터: 최소화 (애그리 게이터에 PII가없는 가명), "비행 중" 및 "휴식 중" 암호화.
액세스: 최소 권한 원칙, KMS의 비밀, 액세스 감사.
T & C/관할 구역: 규칙/버전 로그, 지리 블록, 연령 제한.
13) 관찰 및 SRE 관행
SLO: UI 지연시간은 300 ms p95, 클레임 시간은 10 분 p95, 가동 시간은 99 이상입니다. 9%.
측정 항목: 이벤트/초, 테이크/거부 비율, 후기, 최고 K 힙합 성장, 스트림 지연, 발생 오류, 클레임 비율.
추적: 채점 → 캐시 → UI.
경고: 정지 버튼 (무거운 실험을 비활성화하거나 N을 최상으로 줄임), 자동 저하.
사후: 24-48 시간 동안의 RCA, 행동 항목 목록, 오류 예산 정책.
14) 보상 및 청구
자동 상: 가까운 이벤트의 경우 - 위치, 발급, 영수증 계산.
클레임 창: 계산서 72 시간, 재배송, 결정 론적 지불 순서.
투명성: 프로필에서 수상 경력: 규칙, 시간, 금액, 출처.
보유: KYC/AML 이전의 희귀/귀중한 상.
15) A/B 실험 및 회로 진화
테스트 대상: N 베스트 (10/20), 스핀 당 캡 (온/오프), 다양성 보너스 (0/50/100), 집계 유형 (양/중앙값).
무작위 화: 지역/채널/클러스터 별-오버플로를 피하십시오.
가드 레일: RTP, 불만/10k, RG 신호-저하되지 않음.
마이그레이션: 스토리지 체계 호환성, 마이그레이션 기간 동안 이중 쓰기.
16) UX 패턴 실시간 등급
등급 센터: 승리 규칙, 타이머, 점수, 남은 시도, 다음 보상.
라이브 피드백: "x3의 경우 + 40 점", "20 점 중 2 번의 시도가 남았습니다", "3 곳을 올렸습니다".
쇼케이스: 전체 상위 100 위, "나의 위치", "하루/분할의 최상위", 팀에 기여.
A11y: 대비, 많은 수, 초점 상태, 음성 진행.
현지화: 지역 TZ의 마감일/시간 표시, 다국어.
17) 빈번한 실패 및 열화 시나리오
18) 점검표 실시간 등급 출시
규칙/경제학
- 공식, 상위 N, 순위 결정 자, 부서
- 상환율, 지불 폭, 베팅, 청구
장비
- Idempotent Ingest, 늦은 창, 샤딩
- 스트림-애그리 게이터 (то-K/Top-M), 스냅 샷터
- 핫 캐시/엣지, 건강/상태 API, 정지 버튼
안전/RG
- 행동 점수, 연결 그래프, 마우스 가드/할당량
- RG 제한, 알림, 큰 상을위한 KYC/AML
데이터/A/B
- 대시 보드: 지연, 후기, 복식, 공정성 지표
- 실험 설계 및 난간, 마이그레이션 중 이중 쓰기
UX
- 등급 센터, 마이크로 피드백, A11y, 현지화
- 1 화면 + 전체 T & C의 짧은 규칙
신뢰할 수있는 실시간 등급은 하나의 서비스가 아니라 훈련 된 생태계입니다. 엄격한 SLO/SLA, 이해하기 쉬운 UX 및 A/B를 통한 검증 변경을 추가하면 플레이어가 신뢰하는 리더 보드를 얻을 수 있으며 제품은 유지, 고정 및 LTV의 예측 가능한 성장을 얻습니다.