Microservice – Pelacakan Masuk Terdistribusi | Oleh Jeffrey Cheng | Juni 2022

Programming

[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

Foto oleh Marten Bjork di Unsplash

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-idDan 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.TraceIdentifierDan 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 HttpContextDan 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.TraceIdentifierIni 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

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.