Logo GH

סינכרון נתונים באמצעות API

1) מדוע יש צורך בסינכרון ומהן המטרות

עקביות דומיין: פרופיל, ארנק, ספריות, גבולות, KYC.
הורדת משקולות: כמעט בזמן אמת לתהליכים קריטיים (תשלומים, בונוסים).
עמידות: התנסות בהפסקות רשת/ספק ללא אובדן אירועים.
כלכלה: למזער את היציאה/מעבד באמצעות דלתא וחבילה.

מדדי הצלחה: לאג (s) בין מקור לצרכן, רעננות, פרופורציה של שכפולים, אחוז הקונפליקטים, עלות GB/שעה של כחול.

2) מודלים סינכרוניזציה

2. 1 משוך (סקרים)

הלקוח מבקש שינויים במרווחים.

מקצוענים: פשטות, בקרת עומס.
חסרונות: לג, ”ריק” סקרים, סיכון של דילוג בשיעור גבוה של שינוי.
שיפורים: אם-שונה-מאז, אטג/אם-לא-התאמה, change_token.

2. 2 דחיפה (אינטרנט/אירועים)

המקור מעביר את האירועים למקבל.

מקצוענים: כמעט בזמן אמת, כלכלת סקר.
חסרונות: צריך משלוח עם מגשים חוזרים, שכפול, אבטחה (חתימה, mTLS).
דרישות: צרכנים מפוקפקים, גיבוי מעריכי, שידור חוזר.

2. 3 CDC/הזרמה (לכידת נתונים שינוי)

צילום של שינויים מיומן העסקה/יומן האירוע (קפקא, Debezium).

מקצוענים: שלמות, סדר, קנה מידה.
חסרונות: מורכבות, יש צורך בשליטה על סוגי הפעולות (הוספת/עדכון/מחיקה/מצבה).

2. 4 היברידי

זה נראה כמו ”הדק”, סקרים כנסיגה לאחור ולהתפייסות.

3) דלתא אינקרמנטלית

3. 1 סימן מים (חותמת זמן)

הלקוח אוגר את "last _ seen _ ts' ומבקש 'opdated _ at> watermark'.

סיכונים: ניצול שעות של UTC ו ־ NTP; קח חלון חפיפה עבור 1-2 דקות ודדופ על ידי זיהוי + גרסה.

3. 2 שנה טוקן/סמן

סימון רצף יציב: "? הסמן = eyJvZZZXQiOjEwMDB9 '.

יתרונות: עמידות לשינוי סדר, קנה מידה.
דרישות: סלסולים לא מדולדלים, טי-טי-אל והילוך חוזר בטוח.

3. 3 קיזוזים ממוספרים (הצטברות אוטומטית)

'id> last_id'. פשוט, אבל נשבר כאשר חורים ו ”חורים” ברצף.

4) הפגנת דגימה גדולה

קייזה/סמן (מועדף): "? לאחר הסמן & גבול = 1000 '- יציב עם שינויים.
קיזוז/הגבלה - פשוט, אבל יקר וכפוף למשמרות.
ציין תמיד מפתח מסוג יציב (לדוגמה, ”(updated_at, id)”.

דוגמה לתגובת הסמן:
json
{
"items": [ { "id": "u_1", "updated_at": "2025-11-03T16:59:10Z" } ],
"next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNS0xMS0wM1QxNjo1OToxMFoifQ==",
"has_more": true
}
5) שינוי סמנטיקה:

5. 1 אפסרט/מיזוג

”שים/משאב/” הוא תחליף מלא.
עדכון חלקי (טלאי מיזוג עם אימות).
Idempotency על ידי 'Idempotency-Key' לכל לכתוב.

5. 2 מחיקות

מחיקה רכה (שדה "נמחק = אמת", "נמחק _ at') - שמור את ההיסטוריה; כיור נותן מצבה.
מחיקה קשה - תן האירוע 'deleled' לפני שנעלם.

דוגמה למצבה:
json
{ "id":"u_1", "event":"deleted", "deleted_at":"2025-11-03T17:00:00Z" }

6) בקרת גרסה ותחרות

6. 1 ETag/If-Match (מנעולים אופטימיים)

הקריאה מחזירה 'etag: ”v123”.
עדכון מ "אם-התאמה:" v123 "- הגנה מפני" עדכונים אבודים ".
במקרה של סכסוך - 409 קונפליקט עם 'ruror _ code: "CONFLICT_VERSION"'.

6. 2 ורסיונינג של רשומות

גירסת השדה "/" updated _ at "בחישוב דלתא ובשיכפול.

6. 3 קונפליקטים

מדיניות: אחרון-כותב-מנצח, שרת-מנצח, מיזוג-אסטרטגיה על ידי שדות (לדוגמה, סכומים = תוסף, דגלים = עדיפות מקור).

7) הזמנה והשפלה

7. הליך משלוח 1

ערבויות: לפחות פעם אחת פלוס אידמפוטנטיות = דה פקטו סטנדרטי.
עבור זרימות מזומנים קריטיות, השפעות של פעם אחת בדיוק דרך חנות האידמפוטנטיות.

7. 2 מפתחות idempotence

הרכב שדות תחום: "source _ id' event _ type" sequence ".
אחסון TTL 24-72 שעות (או יותר ב-SLAs).

7. 3 שכפול

שמירת הגרסה האחרונה/seq המיושמת על המקבל; טיפה מבוגרים יותר.

8) חזרות, פסקי זמן, גיבוי

ניתן לאחזר: 5xx/429/408/timeouts; לא ניתן לשחזור: 400/401/403/404/ 409/422/410/412.
גיבוי מעריכי + ג 'יטר: 1, 2, 4... עד 30-60.
אחרי הכבוד ל-429/503.
פסקי זמן ללקוח: חיבור 3-5, בקשה כללית 10-30; הגבלה כוללת של ניסיונות 3-6.

9) לאגס ושליטה ב ־ SLA

9. 1 SLI/SLO

SLI Lag: חציוני/p95 lag בין ”התרחש _ at' ו” מיושם בצריכה. &pos;

SLO: לדוגמה, 'p95 lag 60' (28d), "נתח של אירועים אבודים = 0", "נתח של שכפולים 0. 01%».
תקציב שגיאה: להוציא על שחרור/ניסויים.

9. 2 מדדים

'sync _ lag _ seconds', 'events _ governed _ total', 'events _ applied _ total', 'backlog _ size', 'corressor _ advance _ rate'.

10) פיוס ומילוי גב

פיוס של יום/שעה: סיכומים/חלונות.
פיוס API: "קבל/פיוס? מ- = & to =... שחזור בדיקות ווריאציות.
גיבוב אחורי: טעינה מאובטחת של נתונים היסטוריים בחבורות עם סמן, ללא מקור DDOS; התבונן בגבולות.

11) מזימות ודוגמאות

11. 1 אירועי Webhook (חתומים)

json
{
"event": "user. updated",
"id": "evt_01HX",
"occurred_at": "2025-11-03T18:00:05Z",
"sequence": 123456,
"data": { "id": "u_1", "email": "a@b. com", "updated_at": "2025-11-03T18:00:02Z" }
}
כותרים:
  • ”X-חתימה: Sha256 =
  • 'X-אירוע-ID: evt_01HX'
  • 'X-Retry: 0, Nofost

11. 2 דגימה אינקרמנטלית (סקרים)

'גט/v1/משתמשים? updated_after=2025-11-03T17: 58:00Z&cursor=...&limit=1000'

11. 3 עצב אידמפוטנטי


POST /v1/users
Idempotency-Key: upsert-u_1-20251103T1800Z
{ "id":"u_1","email":"a@b. com","version":124 }
→ 201/200 (stable)

12) בטיחות וציות

Auth: OAuth2 scopes/JWT; לערוצי קישור - mTLS לפי דרישה.
כותרות: כותרות HMAC לפנקסי אינטרנט, סודות מסתובבים.
מזעור PII, מיסוך ביומנים; GDPR/DSAR העלה/מחק.
גישה לדייר/ארגון, מכסות מחמירות.

13) יכולת תצפית ויומנים

Directable: "env", "service", "dirunant'," source "," coloror "," seq "," event _ type ".
קורלציה: "trace _ id' מקלט = חל על לוגים ועקבות.
לוחות מחוונים: lag, backlog, מהירות הסמן, שגיאות סוג, 429/5xx, עלות (egress/min).

14) פינוקס: עלות סינכרון

חבורה (גודל אצווה 100-1000) + דחיסה (gzip/br).
CACHING ו-ETAG עבור דפים ללא שינוי.
תשלום דק: רק שינו שדות, קישור למשאב מלא לפי דרישה.
מגבלות מקובלות ו ”חלונות לילה” למילוי גב.

15) בדיקה ואיכות

15. 1 חוזים ומקרים שליליים

לאמת את תרשימי JSON, שדות דרושים, יציבות ”שגיאה _ קוד”.
בדיקות: מחוץ לסדר, שכפולים, דילוג על אירועים, קונפליקט גרסה, 429/5xx.

15. 2 כאוס/משחקים

זריקות: עיכובים ברשת, ירידה 10-30% של אירועים, סדר מחדש.
קריטריונים: שמירת סדר/שלמות? אין הפסדים? לאג בתוך SLO?

16) רשימת מימושים

[ ] מודל נבחר (push/pull/hybrid) ומקור האמת.
[ ] דלתא אינקרמנטלית: סימן מים או סמן/אסימון.
[ ] Pagination: סמן/keyset עם ציון יציב.
[ ] Idempotency-חנות, מפתחות ו-TTL; dedup by '(id, גרסה/seq) ".
[ ] ETag/If-Match ומדיניות הקונפליקט (LWW/שרת-מנצח/מיזוג).
[ ] Retry/חזרה/jitter, לכבד ”Retry-After”.
[ ] Metrics lag/clog/duplicates/conflicts, לוחות מחוונים והתראות.
[ ] פיוס API + פיוס יומי.
[ אבטחה ]: OAuth2/JWT, חתימות ברשת, MTLS, מדיניות מח "ש.
[ ] FinOps: אצווה + דחיסה, גבולות קונקורנסי, מכסות יציאה.
[ סוויטת מבחן ]: סדר מחדש, שכפולים, הפסקות, הילוך אחורי.

17) תוכנית יישום (3 איטרציות)

1. MVP (1-2 שבועות):

סמן פגינציה, סימון מים דלתא, אידמפוטנט upsert, lag/backlog בסיסי, retry + backoff metrics.

2. סולם (2-3 שבועות):

HMAC, פיוס, ETAG/IF-Match, לוחות מחוונים והתראות שרפה על ידי פיוס.

3. פרו (3-4 שבועות):

CDC/Surving (קפקא/דבזיום) עבור תחומים חמים, אוטומטי-גב, תסריטי DR, אופטימיזציה של FinOps (אצווה/ברוטלי), SLA עבור פיגור ודיווח.

18) מיני ־ FAQ

מה לבחור: סימן מים או סמן?
הסמן/keyset עמיד יותר לסדר מחדש וקנה מידה; קל יותר להתחיל בסימן מים, אבל להוסיף חפיפה ולמות.

זה נחוץ בדיוק פעם אחת?
באופן כללי, יקר. תרגול - לפחות פעם אחת + אידמפוטנטיות; בדיוק פעם אחת להשפעות כספיות בלבד.

איך לצמצם סכסוכים?
השתמש ב ־ ETag/IF-Match, תכנן מיזוג שדות, הימנע מתופעות לוואי ”מוסתרות”.

סך הכל

סינכרון אמין הוא דלתא אינקרמנטלית + נכון pagination + idempotency and grass control, משופר על ידי תצפית, נצנצים והובלה חסכונית. בחר את המודל הנכון (push/pull/CDC), הצמיד את ה-SLO על הפיגור, יישם מדיניות קונפליקט ובדיקות תרחישים מלוכלכות - וחילופי הנתונים שלך הופכים להיות צפויים, ברי קיימא ויעילים.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.