Distributed
- Node.js kursu
- Uzman
- Ders 45/47
- 6 dk
Distributed tracing ve event sourcing eklersin.
Dağıtık izleme katmanı
Üçüncü derste dağıtık izleme katmanını ekleriz. OpenTelemetry, hizmetler arası isteğin yolunu tek bir trace ID ile izlemenin açık standardıdır. Bu projede gerçek OpenTelemetry çatısını kurmak yerine, onu temsil eden bir distributedLayer fonksiyonu yazıyoruz.
distributedLayer fonksiyonu { tracing: 'OpenTelemetry', status: 'hazır' } döndürür. Çıktıya yeni satır olarak OpenTelemetry: hazır eklenir. Başlangıç kodu, setupProject ve nativeAddon çözümlerinin üzerine yazılır. Bu birikimli büyüme, ileride integrationReport tüm katmanları çağırırken doğru sırayı garantiler. Gerçek bir OpenTelemetry entegrasyonu @opentelemetry/node paketi ve HTTP başlık yayma ile yapılır; burada modelleme yeterli.
İzleme bağlamı
Bir dağıtık izleme bağlamı, trace ID ve span ID ile çalışır. Bu projede distributedLayer yalnızca izleme çatısının adını taşır; gerçek bağlam yayma ileride gelir. Yine de çağrı deseni önceki katmanlarla aynıdır.
Örnek: console.log(distributedLayer().tracing + ': ' + distributedLayer().status). Bu, OpenTelemetry: hazır satırını üretir. Önceki satırlar (ExpertProject, 1.0, N-API: hazır) korunur; yenisinin ardından eklenir. Birikimli büyüme sayesinde her dersin çıktısı bir öncekinin devamıdır. Bu, ileride integrationReport tüm katmanları tek dizede toplarken her parçanın doğru sırada yer almasını sağlar.
Uygulama Dağıtık izleme katmanını ekle
Önceki dersin setupProject ve nativeAddon çözümlerini al. function distributedLayer() ekle; return { tracing: 'OpenTelemetry', status: 'hazır' } döndürsün. console.log(distributedLayer().tracing + ': ' + distributedLayer().status) ile yazdır.
Başlangıç kodu
function setupProject() {
return { name: 'ExpertProject', version: '1.0' };
}
console.log(setupProject().name);
console.log(setupProject().version);
function nativeAddon() {
return { api: 'N-API', status: 'hazır' };
}
console.log(nativeAddon().api + ': ' + nativeAddon().status);
// distributedLayer fonksiyonu yaz
// OpenTelemetry izleme bilgisini taşıyan bir nesne döndürsün
// tracing ve status'u yazdır
// buraya yazÖrnek çözüm
function setupProject() {
return { name: 'ExpertProject', version: '1.0' };
}
console.log(setupProject().name);
console.log(setupProject().version);
function nativeAddon() {
return { api: 'N-API', status: 'hazır' };
}
console.log(nativeAddon().api + ': ' + nativeAddon().status);
function distributedLayer() {
return { tracing: 'OpenTelemetry', status: 'hazır' };
}
console.log(distributedLayer().tracing + ': ' + distributedLayer().status);Beklenen çıktı
ExpertProject 1.0 N-API: hazır OpenTelemetry: hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
OpenTelemetry |
İzleme standardı |
distributedLayer |
Katman fonksiyonu |
tracing |
İzleme adı |
trace ID |
İsteği bağlar |
2 Dağıtık izlemede tracing kimliği ne işe yarar?
function distributedLayer() { return {tracing: 'OpenTelemetry', status: 'hazır'}; }- Veritabanı şifresi
- İstek yolunu işaretler Doğru cevap
- Kullanıcı oturumu
- Yalnızca önbellek
Açıklama: tracing kimliği istek yolunu işaretler; tüm hizmetleri bağlar.
3 tracing alanını tamamla
return { tracing: '____', status: 'hazır' };
return { tracing: 'OpenTelemetry', status: 'hazır' };
Açıklama: tracing alanı 'OpenTelemetry' değerini taşır.