[ad_1]
Selamat datang Teman-teman di suratpembaca.web.id. Malam ini kita akan mengupas tentang Linux yakni Microservice – Pelacakan Masuk Terdistribusi | Oleh Jeffrey Cheng | Juni 2022
.
Sekiranya postingan mengenai Microservice – Pelacakan Masuk Terdistribusi | Oleh Jeffrey Cheng | Juni 2022
dapat memberikan manfaat untuk Sahabat semua. Mari baca artikel ini
hingga selesai.
Dengan Dotnet, misalnya, temukan korelasi laporan dengan cepat di layanan mikro Anda
Masuk dapat membantu pengembang menemukan masalah dalam sistem segera.
Kami biasanya menggunakan login untuk memastikan bahwa masalah teratasi jika terjadi masalah.
Dalam sistem arsitektur terintegrasi, pelacakan log menjadi mudah.
Kami membutuhkan klien (seperti aplikasi, browser, atau panggilan API) untuk mengirimkannya x-request-id
Dalam tajuk dan rekam HTTP x-request-id
Di setiap baris log
Tetapi jika sistemnya adalah arsitektur Microservice, semuanya benar-benar berbeda.
Kami tidak hanya menyeberang x-request-id
Di setiap layanan, Anda harus membawanya ke layanan berikutnya.
Terakhir, kami mengumpulkan dan mencari laporan dalam sistem pengumpulan log seperti ELK x-request-id
; Kami dapat menerima seluruh urutan laporan operasi pengguna, dari layanan A hingga layanan B dan layanan C, dan apa yang terjadi akan muncul di monitor Anda.
Ada banyak cara untuk mengintegrasikan layanan, seperti web API, gRpc, dan antrian pesan.
Masalahnya bagaimana? Bagaimana aku melakukan itu?
Pada artikel ini, saya akan mendemonstrasikan solusinya dalam .NET dan menggunakan paket NLog.
Untuk menjelaskan solusinya, saya membaginya menjadi dua bagian: satu menerima x-request-id
Dan yang lain sedang dikirim x-request-id
.
Aliran kasar mendapatkan ID permintaan dari suatu tempat dan memasukkannya ke dalamnya HttpContext.TraceIdentifier
.
Saat kami perlu mengirim permintaan, kami menerima ID permintaan darinya HttpContext.TraceIdentifier
Dan meletakkannya di suatu tempat.
Mengapa saya katakan di suatu tempat? Karena segala jenis cara integrasi tidak sia-sia.
Saat kami menerima x-request-id di header HTTP, kami memulai rentang logger dan memasukkan ID permintaan ke dalamnya. HttpContext.TraceIdentifier
.
API Web
Urutan pendaftaran firmware itu penting.
partikel untuk objek langsung RequestIdMiddleware
Harus maju WebApiLogginMiddleware
Sehingga firmware log dapat berada pada range logger.
gRpc
Cara menerima dan mengirim request ID di gRpc bisa ada di sebuah class, jadi kami akan menjelaskan request ID di bagian send.
Antrian pesan
Kami menempatkan ID permintaan di isi pesan sehingga ID permintaan terus melewati sistem terdistribusi.
Karena tidak setiap antrian pesan memiliki header yang dapat berisi ID permintaan, kami menempatkan ID permintaan di konten.
Catatan, karena antrian pesan tidak melewati HTTP, tidak mungkin HttpContext
Atau
Ini akan membantu jika Anda membuat versi baru HttpConext
Dan kenakan IHttpContextAccessor
.
Dapatkan ID permintaan dari isi pesan, taruh di bagian baru HttpContext
Dan tentukan nilai dari HttpContext
Untuk berlari IHttpContextAccessor
.
Mengirim permintaan ID lebih mudah diakses daripada menerimanya.
Kami menerima ID permintaan darinya HttpContext.TraceIdentifier
Dan letakkan di header.
API Web
Di API panggilan web, kami menggunakan DeletaingHandler
Untuk mengirim ID permintaan
Satu-satunya poin yang perlu diperhatikan adalah ini HttpClientXRequestIdHandler
Harus dicatat sebagai transien dalam wadah DI.
gRpc
Minta ID dari MetaData UnaryServerHandler
Metode dan masukkan ke dalamnya HttpContext.TraceIdentifier
Ini adalah logika API Web.
Dalam mengirim ID permintaan, itu dari HttpContext.TraceIdentifier
Dan letakkan di Metadata Header.
Anda harus menambahkan ID permintaan untuk mengirimkannya RequestIdGrpcInterceptor
Per pelanggan gRpc.
Deskripsi detail di Program.cs
.
Antrian pesan
Minta saja ID dari HttpContext.TraceIdentifier
Dan memasukkannya ke dalam isi pesan.
Penerimaan dan pengiriman ID permintaan dilakukan di setiap layanan. Langkah selanjutnya adalah mencetak ID permintaan di file log.
Contoh berikut menggunakan konfigurasi NLog.
<target xsi:type="File" name="info" fileName="logs/$shortdate.info.log" layout="$longdate|$mdlc:request|$message"/>
Kunci untuk mencetak ID permintaan adalah tampilan laporan mdlc:request
.
Tambahkan rendering $mdle:requestid
Tandai target Anda di log
Perhatikan bahwa string “Permintaan” sama dengan yang Anda tulis di logger BeginScope.
Untuk informasi lebih lanjut tentang rendering “mdlc”, Anda dapat merujuk ke dokumen. https://github.com/NLog/NLog/wiki/Mdlc-Layout-Renderer#net-core-logging.
Dengan semakin banyak layanan, kami membutuhkan solusi untuk dengan cepat menentukan urutan operasi logika bisnis di seluruh sistem.
Mengirim ID permintaan ke seluruh sistem membantu melacak laporan.
Anda juga dapat mengirim ID pengguna ke seluruh sistem. Berguna untuk daftar yang diizinkan atau daftar larangan di layanan apa pun.
Saat mengumpulkan laporan di seluruh sistem, kami mungkin berisi data sensitif seperti nomor identitas, nomor telepon, atau rekening bank, dan sebagainya.
Pada artikel selanjutnya, saya akan mendemonstrasikan cara mengcover data sensitif dalam paket NLog.
Saya harap artikel ini dapat menyelesaikan masalah Anda.
Itu tadi pembahasan tentang Microservice – Pelacakan Masuk Terdistribusi | Oleh Jeffrey Cheng | Juni 2022
, terimakasih sudah berkunjung di website saya, mudah-mudahan postingannya ada manfaatnya ya.
[ad_2]
Source link