Skip to content

Commit

Permalink
PEMIDI Merge #33
Browse files Browse the repository at this point in the history
* PUSH NOTE : Correlation ID in Headers - Uber.md

* PUSH NOTE : PEMIDI solutions.md

* PUSH NOTE : Multiplexing vs Demultiplexing - uber.md

* PUSH NOTE : Distance Anomaly Issue - Uber.md

* PUSH NOTE : git reset command.md

* PUSH NOTE : TCP Slow Start Restart Algorithm - Uber.md

* PUSH NOTE : Race Condition - Uber.md

* PUSH NOTE : NDA - Uber.md

* PUSH NOTE : Map Matching and Sensor Fusion for Improved Driver Navigation.md

* PUSH NOTE : Lowest Common Ancestor in a Binary Tree (LCA) - Uber.md

* PUSH NOTE : Lazy Loading vs Eager Loading - Uber.md

* PUSH NOTE : Hash Table Data Structure - Uber.md

* PUSH NOTE : Graceful Shutdown - Uber.md

* PUSH NOTE : Database Sharding.md

* PUSH NOTE : Cold Start - Uber.md

* PUSH NOTE : Circuit Breaker Pattern - Uber.md

* PUSH NOTE : Buffer - Uber.md
  • Loading branch information
PEMIDI authored Sep 2, 2024
1 parent 7680e96 commit 2075e9b
Showing 1 changed file with 90 additions and 0 deletions.
90 changes: 90 additions & 0 deletions Correlation ID in Headers - Uber.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
github: "true"
---



<div dir="rtl">

---



مارال:
سلام بچه‌ها! حالتون چطوره؟ 😊

می‌خواستم درباره یه مشکلی که داریم صحبت کنم.

ما نیاز داریم که ریکوئست‌هایی که به سمت ما میان و وارد سرویس‌های مختلف می‌شن رو ردیابی کنیم.

حسین:
این موضوع خیلی مهمه.
چطوری می‌خواهید این کار رو انجام بدید؟

مارال:
به نظر من، بهترین راه اینه که از correlation ID استفاده کنیم.

اینطوری می‌تونیم هر درخواست رو با یه شماره منحصر به فرد ردیابی کنیم.

پیمان:
آره، correlation ID خیلی کارآمده!

این شناسه می‌تونه توی هدر ریکوئست قرار بگیره و در تمام سرویس‌ها منتقل بشه. 🚀

کیان 🌈:
ببخشید، میشه بیشتر توضیح بدید که این چطوری کار می‌کنه؟

حسین:
البته! کیان، تصور کن هر بار که تو یه درخواست اوبر می‌دی، یه شماره مخصوص به اون درخواست بهش تعلق می‌گیره.

مثل وقتی که تو مدرسه یه کارت شناسایی داری که اسم و عکس تو روش هست.

ماهان:
دقیقاً! بعد این شماره به همه معلم‌هایی که تو درس می‌دی، منتقل میشه.

مثلاً معلم ریاضی، معلم علوم، معلم ورزش و...

حسین:
حالا، برای پیاده‌سازی این موضوع، ما می‌تونیم از یک middleware استفاده کنیم.

این middleware توی پایتون نوشته میشه و وظیفه‌اش اینه که correlation ID رو به هدر ریکوئست اضافه کنه.

پیمان:
درست می‌گی. ما می‌تونیم از فریمورک‌هایی مثل Flask یا Django استفاده کنیم.

حسین:
دقیقاً! وقتی یک ریکوئست جدید به سرور میاد، middleware ما یه correlation ID تولید می‌کنه و اون رو به هدر ریکوئست اضافه می‌کنه.

مثلاً می‌تونیم از کتابخانه `uuid` برای تولید این شناسه استفاده کنیم.

ماهان:
و بعد این شناسه به تمام سرویس‌هایی که ریکوئست بهشون ارسال میشه، منتقل میشه. 🔍

حسین:
درست همینه! و وقتی که مشکلی پیش میاد، می‌تونیم با استفاده از این correlation ID تمام لاگ‌ها و درخواست‌ها رو بررسی کنیم.

پیمان:
اینطوری می‌تونیم بفهمیم که ریکوئست از کجا شروع شده و چه مراحلی رو طی کرده.

مارال:
این کار به ما کمک می‌کنه تا مشکلات رو سریع‌تر شناسایی و حل کنیم.

آیا کسی می‌تونه یک نمونه کد برای پیاده‌سازی این موضوع آماده کنه؟

ماهان:
من این کار رو انجام میدم!

می‌تونم یه middleware بنویسم که correlation ID رو به هدر ریکوئست اضافه کنه. 💻

حسین:
عالیه! و همچنین باید مطمئن بشیم که این شناسه توی لاگ‌ها هم ثبت میشه تا بعداً بتونیم به راحتی ردیابی کنیم.


---






</div>

0 comments on commit 2075e9b

Please sign in to comment.