GH GambleHub

노드 간 데이터 흐름

(섹션: 생태계 및 네트워크)

1) 에센스와 목표

노드 간 데이터 흐름은 관리되는 이벤트, 상태 및 생태계 역할 (유효성 검사기/리더/인덱서/브리지/게이트웨이/저장/분석) 간의 아티팩트 채널입니다. 목표:
  • 예측 가능성: 지연/성공/신선도에 의한 안정적인 SLO.
  • 신뢰성: 손실, 복제, 조직에 대한 저항.
  • 보안 및 준수: 암호화, 서명, 거주.
  • 확장 성: 지리 분포, 분할, QoS.

2) 흐름 분류법

1. 제어 비행기: 구성 요소, phicheflags, 라우팅/제한 정책.
2. 데이터 평면-이벤트: 도메인 이벤트 ('예금. ',' 지불. ',' 다리. ').
3. 데이터 비행기-스트림: 신호 및 라이브 메트릭을위한 장기 스트림 (gRPC/웹 소켓).
4. 배치/백필: 역사적 슬라이스, 재생, 스냅 샷 다운로드.
5. 복제/엔트로피: 상태 동기화, 머클리징, CRDT 스트림.
6. 원격 측정/관찰 가능성: 로그/메트릭/트레일 측면 대역, 기본 UX를 방해하지 않습니다.

각 유형에는 QoS 클래스와 자체 리트레이/주문 규칙이 있습니다.

3) 토폴로지 및 라우팅

허브 앤 스포크: 타이어로서의 지역 허브; 연극-역할 노드.
메시/P2P: 복제/가십을위한 부분 메쉬.
가장자리 계층: 얇은 가장자리 게이트웨이 (속도 제한/캐시) → 두꺼운 지역 클러스터.
지리 라우팅: Anycast/Latency-Aware LB + 레지던트 규칙.

키 - 파티셔닝: 'partition _ key = chainID' 테넌트 '주제' entityID '는 예측 가능한 순서와 스케일을 제공합니다.

4) 전송 및 형식

TP/2/3, gRPC/QUIC-낮은 대기 시간, 멀티플렉싱, keepalive.
Kafka/Pulsar/NATS-지속성/파티/소비자 그룹이있는 대기열.
웹 소켓-푸시 이벤트 및 라이브 피드.
형식: 원형/Avro (진화가있는 체계), 외부 API를위한 JSON.
무결성 검증을위한 해시 주소 지정 및 머클 영수증.

5) 주문, 배송 및 마무리

배송 모델:
  • 적어도 한 번 (기본값; dempotency/deadup이 필요함).
  • 송신기/받은 편지함 + dempotent 소비자를 통한 정확한 한 번의 효과.
  • 명령: 당 내에서 보장; 당사자 간 명령이 보장되지 않습니다.
  • 최종 화: 상태 '관찰 → 확인 (K) → 최종 → 유효하지 않음 (reorg)'; 낙관적 분쟁 창.

6) Idempotence and dedup

이벤트의 이데올로기 키:
  • 'idempotency _ key = $ {chainID} | $ {블록} | $ {tx} | $ {logIndex} | $ {타입}'
규칙:
  • 중복 제거 창의 키, TTL에 의해 72 시간 이상 상승합니다.
  • 충돌의 경우 페이로드는 "진실의 원천" 정책 (우선 순위, 버전, 서명) 입니다.
  • HTP 요청의 경우 헤더는 'Idempotency-Key' + 응답 로그입니다.

7) 대기열, 역압 및 할당량

대기열: 열쇠 별 당사자; "유독 한" 메시지에 대한 DLQ.
역압: 크레딧/토큰, 최대 기내 제한, 회로 차단기.
Quotas/QoS: P0 (임계), P1 (제품), P2 (벌크). 분할 풀/RPS 제한/바이트/s/구독.
입학 통제: "비싼" 요청의 조기 거부, 범위/크기 별 보호.

8) 일관성 및 데이터 모델

파티/노드 내에서 읽기-쓰기.
지역/당사자 간의 최종 일관성.
일부 세트 (카운터, 세트) 의 충돌없는 복제를위한 CRDT.
빠른 부트 스트랩 및 결정 론적 재생을위한 스냅 샷 + 로그.

9) 보안과 신뢰

노드, 키 피닝, 회전 사이의 mTLS.
메시지/웹 후크 서명, 타임 스탬프 및 재생 방지 창.
이동/휴식 시간에 암호화; 지역 키 분리.
PII 최소화: 토큰 화, 레이블/메트릭스의 개인 데이터 금지.

10) 효율: 포장, 압축, 캐시

배치: 오버 헤드를 줄이기 위해 작은 메시지를 그룹화합니

압축: 안전한 사전이있는 zstd/ggip.
현금: 부정적인 답변 및 "핫" 디렉토리; 행사 별 TTL 및 장애.

11) 데이터 다이어그램 (참조)

흐름/로트 레지스터

sql
CREATE TABLE streams (
name TEXT PRIMARY KEY,
partitions INT,
qos TEXT,        -- P0    P1    P2 retention_days INT,
schema_version TEXT
);

CREATE TABLE offsets (
stream TEXT, partition INT, consumer_group TEXT,
offset BIGINT, updated_at TIMESTAMPTZ,
PRIMARY KEY (stream, partition, consumer_group)
);

이벤트 로그 (demotent upsert)

sql
CREATE TABLE events_core (
id UUID PRIMARY KEY,
idempotency_key TEXT UNIQUE,
ts TIMESTAMPTZ,
partition_key TEXT,
type TEXT,
payload JSONB,
status TEXT,      -- observed    confirmed    finalized    invalidated signature TEXT
);

DLQ/검역소

sql
CREATE TABLE dlq (
id UUID PRIMARY KEY,
stream TEXT, partition INT, offset BIGINT,
reason TEXT, payload JSONB, ts TIMESTAMPTZ
);

12) 정책 (YAML)

QoS 및 한계

yaml qos:
P0: { ack_timeout_ms: 2000, retries: 3, backoff_ms: [100,400,800], rps_per_org: 1500 }
P1: { ack_timeout_ms: 5000, retries: 2, rps_per_org: 800 }
P2: { best_effort: true, rps_per_org: 200 }
limits:
max_message_bytes: 1048576 max_stream_subscriptions_per_client: 20

최종화 및 창

yaml finality:
eth-mainnet: { k: 12 }
polygon:   { k: 256 }
optimistic: { k: 0, challenge_minutes: 20 }

라우팅/레지던시

yaml routing:
prefer_local_region: true fallback: [nearest_healthy, master_hub]
residency:
eu: ["eu"]
uk: ["uk"]

13) 관찰 가능성: SLI/SLO

SLI (핵심):
  • 대기 시간 p95/p99 (유입 → 유출, 스트림 당/QoS).
  • 성공률/하락 률.
  • 큐 래그 p95 및 파티 별 소비자 지연.
  • 신선도 p95 (섭취 → 소비).
  • 로그/유효하지 않은 속도 (온 체인 인 경우).
  • Dedup Efficiency (복용량의% 가 엄청나게 흡수됨).
  • Geo-Hit 비율 (로컬 서비스).
SLO (랜드 마크):
  • P0 대기 시간 p95 λ400 ms; 성공 99 이상. 95%; Queue-lag p95 신선도 p95
  • 데드 업 효율은 99% 이상입니다. DLQ 지정 0. 트래픽의 1%.

대시 보드: 스트림 코어/래그 및 신선도/QoS 및 오류/지리/보안 (mSL/서명).

14) 소비자 패턴

송신기/받은 편지함: 원자 출판 및 demmpotent 응용 프로그램.

정확히 한 번의 효과: 마지막으로 적용된 키 및 버전을 저장하십시오

워터 마크: 늦은 데이터.
Idempotent 부작용: 키 및 응답 로그 만 포함 된 외부 쿼리.

15) 분해 모드

최종 전용 모드: 최종 이벤트 만 발행합니다.
참고 문헌을위한 캐시 전용, 무거운 방법 동결.
스트림에 대한 스로틀 P2 및 "다이어트 모드" (재생률 감소).
2 차 API에 대한 읽기 전용.

16) 다운 타임없는 릴리스 및 마이그레이션

Flows and Consumers의 Blue-Green/Canary.
스키마 우선: 필드 만 추가하십시오. 메이저-병렬 버전의 주제.
오프셋 마이그레이션: 섀도우 소비자, 지연/성공 비교, 전환.

17) 운영 규정

일일: SLO 보고서 (대기 시간/성공/지연/신선도), 서명 감사, DLQ 확인.
주간: 배치/할당량 개정, DR 테스트 (스냅 샷에서 부트 스트랩), Dedup Efficiency 분석.
월간: 혼돈 테스트 (손실/지터, 브로커 고장, 재조직 버스트), 최종 창 개정.
출시 전: 카나리아 10 분의 120 분, SLO 게이트, 롤백 계획.

18) 플레이 북 사건

A. Queue-Lag/소비자-Lag 폭발

1. 소비자 증가/KEDA; 2) 재분배 당사자; 3) 동결 P2 및 대량 작업; 4) "핫" 키 분석.

p95 Latency P0의 B. 성장

1. P2- 스로틀, P0 우선 순위; 2) 스케일 게이트웨이/브로커; 3) 참고서 전용 캐시; 4) 특이 치 방출.

C. High DLQ/더빙

1. dempotence key/TTL을 확인하십시오. 2) dedup 강화; 3) 시끄러운 생산자를 제한하십시오 4) 수정 후 재생.

D. Drift 체계/계약

1. 엄격한 모드 사용 (유효하지 않은 모드를 차단); 2) 생산자에게 알리십시오. 3) 어댑터를 해제하고; 4) 라인터 업데이트.

거주/서명의 E. 위반

1. 수출/채널 장치; 2) 키/종자 회전; 3) 감사 및 사후 부검; 4) 정책 업데이트.

19) 구현 점검표

1. 스트림 유형과 파티션 키를 정의하십시오.
2. K/분쟁 창으로 dempotence/dedup 및 finalization을 사용하십시오.
3. 대기열, QoS, 할당량 및 배압 설정.
4. mSL/서명 및 기숙사 정책을 실행하십시오.
5. 스키마/레지스터 (스트림, 오프셋, dlq) 및 SLI/SLO 원격 측정을 입력하십시오.
6. 카나리아/청록색 및 다운 타임이없는 회로 마이그레이션을 조직하십시오.
7. 열화 모드 및 사고 플레이 북을 해결하십시오.

20) 용어집

역압-입력로드 제어 (크레딧/토큰/제한).
DLQ- 문제 메시지에 대한 "데드 큐".
CRDT-조정없이 충돌 해결 된 데이터 구조.
최종 - 이벤트/상태의 돌이킬 수 없음.
정확히 한 번의 효과-적어도 한 번의 배송으로 반복 안전 결과.
워터 마크-늦은 이벤트에 대한 마크 처리 진행 상황.
이상 방출-풀에서 열화 된 인스턴스를 제외합니다.

결론: 노드 간 데이터 흐름은 단순히 "큐 및 리스너" 가 아니라 순서, 마무리, demotency, 보안 및 관찰 가능성의 체계적인 규칙입니다. 표준 파티션 키, QoS/할당량, 엄격한 체계 및 SLO는 저하 모드 및 플레이 북과 함께 생태계에 안정적인 데이터 전송 채널을 규모 및 감사하에 제공합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.