Տվյալների հոսքերը հանգույցների միջև
(Բաժին ՝ Էկոհամակարգ և ցանց)
1) Էությունն ու նպատակները
Հանգույցների միջև տվյալների հոսքերը իրադարձությունների, պետությունների և արտեֆակտների փոխանցման կառավարվող ալիքներն են էկոհամակարգի դերերի միջև (վալիդատորներ/ինդեքսատորներ/կամուրջներ/կողպեքներ/108/վերլուծություն)։ Նպատակները
Կանխատեսելիությունը 'կայուն SLO ուշացման/հաջողության/թարմ։
Գրանցում ՝ կորուստների դիմադրություն, կրկնօրինակներ, ռեգուրգներ։
Անվտանգությունը և համադրությունները 'կոդավորումը, ստորագրությունները, նստավայրը։
Մեծացումը 'գեո-բաշխումը, կուսակցությունը, QoS-ը։
2) Հոսքերի տաքսոնոմիա
1. Prol Plane: Ուլտրաձայններ, ֆիչեֆլագներ, ուղղորդման/լիմիտների քաղաքականություն։
2. Black Plane-ը իրադարձություններ են 'հիբրիդային իրադարձություններ («deposit.',» payout. ', «bridge!»)։
3. Plane-ը հոսանք է 'երկար (gRPC/WindowSocket) ազդանշանների և 105 մետրի համար։
4. Batch/Backfill 'պատմական կտրվածքների, ռելեների, սարքավորումների բեռնումը։
5. Repacation/anti-entropia: state nc, merclization, CRDT հոսքեր։
6. Հեռուստացույց/դիտարկումը 'Logs/metrics/treiss side-band, չի խանգարում հիմնական UX-ին։
Յուրաքանչյուր տեսակի համապատասխանում են QoS դասարանները և գետերի/կարգի սեփական կանոնները։
3) Տեղաբանության և միկրոօրգանիզացիայի
Hub-and-Spoke: Տարածաշրջանի հաբերը անվադողեր են։ spucks - ռուսական դերեր։
Mesh/P2P 'մասնակի անջատումը/պետական կրկնօրինակման համար։
Edge-Tiered: նուրբ edge-glass (rate-limit/cash) - հաստ տարածաշրջանային կլաստերներ։
Geo-Routing: Anycrim/Latency-Ault LB + բնակության կանոնները։
Հիմնական 'կուսակցությունը' «partecore _ key = chainiD 'tenault' topic 'entert Id» -ը տալիս է կանխատեսելի կարգ և մասշտաբներ։
4) տրանսպորտը և հյուրանոցը
HTTP/2/3, gRPC/QUIC - ցածր լատենտ, բազմաբնույթ, keepalive։
Kafka/Pulsar/NATS - գծեր, որոնք ունեն անձնավորություն/կուսակցություն/կոնսուումեր խմբեր։
Windows Socket-ը push իրադարձություններ և նախկին ալիքներ է։
Շվեյցարիա ՝ Delobuf/Avro (էվոլյուցիայի սխեմաներ), JSON արտաքին API-ի համար։
Հեշ-հասցեավորումը և Merkle-quitancia-ը ամբողջականությունը վերականգնելու համար։
5) Կարգը, առաքումը և վերջացումը
Առաքման մոդելը
At-least-once (լռելյայն; անհրաժեշտ է idempotenty/dedup)։
Exactly-once էֆեկտը Delbox/Inbox + idempotent կոնսումերի միջոցով։
Կարգը 'երաշխավորված է կուսակցության սահմաններում։ միջկառավարական կարգը երաշխավորված չէ։
Եզրափակիչ ՝ "observed" (K) nofalized wwww.alidated (reorg) "; optimistic-ի համար բանավեճի պատուհան է։
6) Idempotenty և dedup
Գաղափարախոսության բանալին իրադարձությունների համար
`idempotency_key = ${chainId}|${block}|${tx}|${logIndex}|${type}`
Կանոնները
Ups.ru ստեղնը, TTL պատուհանները dedup 2472 ռուբլիներ
Payload-ի հակամարտության վրա «ճշմարտության աղբյուրը» քաղաքականությունն է (գերակայությունը, տարբերակը, ստորագրությունը)։
HTTP հարցումների համար '«Idempotency-Key» + վերնագիրը։
7) Գծեր, backpressure և քվոտաներ
Հերթերը 'բանալին խմբակցություններ; DLQ-ը «թունավոր» հաղորդագրությունների համար։
Backpressure: վարկեր/հոսանքներ, max-inflight, circuit-breaker սահմանափակումներ։
Քվոտա/QoS: P0 (կրիտիկական), P1 (ապրանք), P2 (bulk)։ Առանձին փամփուշտներ/RPS/bytes/s/ստորագրություններ։
Admission corl '«թանկ» հարցումների վաղ հրաժարումը, guard միջակայքով/չափերով։
8) Համաձայնություն և տվյալների մոդելներ
Read-210-write կուսակցության/հանգույցի սահմաններում։
Eventium Consistency-ը տարածաշրջանի/կուսակցության միջև։
CRDT-ը որոշ հավաքածուների (հաշվիչներ, շատ) կոնֆլիկտի ֆրի վերարտադրման համար։
Սարքավորումներ + ամսագրեր արագ bootstrap-ի և դետերմինացված replay-ի համար։
9) Անվտանգությունն ու վստահությունը
MTSA-ը հանգույցների, պինինգի միջև է, լուծարումը։
Հաղորդագրությունների/webhuks ստորագրությունները, ժամանակի նշանը և anti-replay պատուհանները։
Կոդավորումը ճանապարհի/հանգստի մեջ; տարածաշրջանային տարածքների տարանջատումը։
PII-նվազեցումը 'թունավորում, անձնական տվյալների արգելք պիտակների/մետրերի մեջ։
10) Արդյունավետություն 'փաթեթավորում, ագրեսիա, քաշ
Batching: փոքր հաղորդագրությունների խումբ overhead-ի նվազեցման համար։
Compression: zstd/gzip անվտանգ բառարաններով։
Քաշ 'բացասական պատասխաններ և «տաք» գրողներ։ 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)
);
Իրադարձությունների ամսագիր (idempotent ups.ru)
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 և limits
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 }
Routing/բնակավայր
yaml routing:
prefer_local_region: true fallback: [nearest_healthy, master_hub]
residency:
eu: ["eu"]
uk: ["uk"]
13) Դիտարկումը 'SLI/SLO
SLI (միջուկը)
Latency p95/p99 (ingress→egress, per-stream/QoS).
Success Rate / Drop Rate.
Queue Lag p95 և consumer lag կուսակցություններով։
Freshness p95 (ingest→consume).
Reorg/Winalidated Rate (եթե onchein)։
Dedup Efficiency (դուբլների տոկոսը, որոնք կլանված են idempotent)։
Geo-Hit Ratio (կազմակերպված է տեղական)։
SLO (կենտրոններ)
P0 latency p95-400 ms; Success ≥ 99. 95%; Queue-lag p95 ≤ 2 с; Freshness p95 ≤ 60 с.
Dedup efficiency ≥ 99%; DLQ ≤ 0. 1 տոկոսը։
Dashbords: Streams System/Lag & Freshness/QoS & Errors/Geo/No (mTSA/ստորագրություն)։
14) Սպառողների արտոնագրեր
Medibox/Inbox: Ատոմային հրատարակություն և գաղափարական կիրառություն։
Exactly-once էֆեկտը 'պահել վերջին օգտագործված բանալին և տարբերակը։
Watermarks-ը 'ազդանշանային իրադարձությունների մշակումը (late)։
Idempotent Side-Effects: Արտաքին հարցումները միայն բանալին և պատասխանների ամսագրին։
15) Քայքայման ռեժիմները
Finalized-only mode: Մենք տալիս ենք միայն վերջնական իրադարձությունները։
Cache-only-ի համար, ծանր մեթոդների սառեցում։
Throttle P2-ը և «դիետայի ռեժիմը» սթրիմների համար (նվազեցված հաճախականությունը)։
Read-only-ը երկրորդական API-ի համար։
16) Ալմաթիում և առանց դաունտայմի
Blue-Green/Canary հոսանքներով և կոնսուումերներով։
Schema-first 'միայն դաշտերի ավելացում; MAJOR-ը տոպիկների զուգահեռ տարբերակներ է։
Expresset 'ov: shadow-consumers, lag/հաջողության համեմատություն, անցում։
17) Վիրահատական խորհրդատվություններ
Ամեն օր SLO (latency/success/lag/freshness), ստորագրությունների աուդիտ, DLQ ստուգում։
Ամեն շաբաթ 'կուսակցության/քվոտի ստուգում, DR թեստ (bootstrap), Dedup Efficiency վերլուծություն։
Ամեն ամիս 'chaos-թեստեր (loss/jitter, բրոքերի, reorg-burst), ռուսական finality պատուհաններ։
Մրցույթի առջև 'կանարեյկան 120 րոպե, SLO-գեյթ, արձագանքի պլան։
18) Playbook 2019
A. Պայթյունը Queue-Lag/Consumer-Lag
1. Բարձրացնել վահանակները/KEDA; 2) վերաբաշխել կուսակցությունը։ 3) սառեցնել P2 և bulk-job; 4) «տաք» վերլուծություն։
B. P95 Latency P0
1. P2-throttle, P0 գերակայությունը։ 2) լայնացնել դռները/բրոկերները; 3) քեշը միայն տեղեկատուների համար։ 4) outlier-ejection.
C. բարձր DLQ/dublage
1. Ստուգել idempotenty/TTL-ի ստեղնը։ 2) ուժեղացնել պապուպը; 3) սահմանափակել աղմկոտ արտադրողը։ 4) արտահայտությունը ֆիքսելուց հետո։
D. Drift սխեմաներ/2019
1. Միացրեք strict-mode (կտրել անվասայլակներ); 2) տեղեկացնել արտադրողին; 3) ազատել ադապտերը; 4) նորարարել ոսպնյակները։
E. բնակության/ստորագրությունների խախտում
1. Էքսպորտի/ջրանցքի բլոկը; 2) կոդավորման/շարքի լուծարումը; 3) աուդիտ և post-mortem; 4) քաղաքական գործչի նորարարությունը։
19) Ներդրման չեկի ցուցակ
1. Հոսքերի սկզբնական տեսակները և կուսակցության բանալին։
2. Միացրեք idempotention/dedup-ը և եզրափակումը K/վեճի պատուհանների հետ։
3. Պարամետրեր, QoS, քվոտաներ և backpressure։
4. RoxmTRK/ստորագրություններ և բնակության քաղաքականություն։
5. Մուտքագրեք սխեմաները (streams, sets, dlq) և SLI/SLO հեռուստատեսությունը։
6. Կազմակերպեք canary/blue-green և առանց dountaim սխեմաների։
7. Աշխատեք դեգրադացիոն ռեժիմներով և պլեյբուսներով։
20) Գլոսարիա
Backpressure-ը մուտքային բեռի վերահսկումն է (վարկեր/հոսանքներ/լիմիտներ)։
DLQ-ը «մեռած հերթն» է խնդրահարույց հաղորդագրությունների համար։
CRDT-ն տվյալների կառուցվածքներ է, որոնք լուծում են հակամարտությունները առանց համակարգման։
Finality-ը իրադարձությունների/վիճակի անդառնալի է։
Exactly-once էֆեկտը at-leport-once-once-ի վերևում։
Watermark-ը վերամշակման առաջընթաց է հետագա իրադարձությունների համար։
Medier-eject-ը փամփուշտից դեգրադացված ինստանսի բացառումն է։
Արդյունքն այն է, որ հանգույցների միջև տվյալների հոսքերը ոչ միայն «հերթն ու լսողը» են, այլ կարգապահության համակարգային կարգապահությունը, եզրափակիչը, գաղափարախոսությունը, անվտանգությունը և դիտարկումը։ Կուսակցական բանալիները, QoS/քվոտաները, խիստ սխեմաները և SLO-ը, դեգրադացիոն ռեժիմների և պլեյբուսների հետ միասին, էկոհամակարգին տալիս են կայուն տվյալների փոխանցման ալիքներ մասշտաբով և աուդիտի տակ։