0Pricing
C# Academy · Pelajaran

Alur Ketahanan

Gabungkan berbagai strategi ke dalam alur ketahanan.

Alur Ketahanan adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Menggabungkan Strategi

Ketahanan nyata biasanya memerlukan beberapa strategi yang bekerja bersama. Polly v8 memungkinkan Anda menggabungkannya menjadi satu alur ketahanan menggunakan ResiliencePipelineBuilder.

ResiliencePipelineBuilder

Anda merangkai panggilan Add... dan mengakhirinya dengan Build(). Hasilnya adalah ResiliencePipeline yang dapat digunakan kembali dan aman untuk utas, yang menjadi jalur untuk menjalankan berbagai panggilan.

var pipeline = new ResiliencePipelineBuilder()
    .AddRetry(new RetryStrategyOptions())
    .AddTimeout(TimeSpan.FromSeconds(5))
    .Build();

Urutan Sangat Penting

Strategi dijalankan dari luar ke dalam: strategi yang ditambahkan pertama membungkus strategi lainnya. Urutan yang umum dan benar adalah batas waktu per percobaan di dalam percobaan ulang, dengan batas waktu keseluruhan dan pemutus sirkuit yang membungkus keduanya.

var pipeline = new ResiliencePipelineBuilder()
    .AddTimeout(TimeSpan.FromSeconds(10))      // overall
    .AddRetry(new RetryStrategyOptions())
    .AddCircuitBreaker(new CircuitBreakerStrategyOptions())
    .AddTimeout(TimeSpan.FromSeconds(2))       // per attempt
    .Build();

Alur Ketahanan Bertipe

Jika strategi memeriksa hasil (seperti pengganti atau percobaan ulang berdasarkan hasil), gunakan ResiliencePipelineBuilder<T> generik agar alur ketahanan mengetahui tipe pengembaliannya.

var pipeline = new ResiliencePipelineBuilder<HttpResponseMessage>()
    .AddRetry(new HttpRetryStrategyOptions())
    .Build();

Menjalankan dengan Keadaan

Untuk menghindari alokasi fungsi penutupan, teruskan keadaan ke ExecuteAsync; Polly mengembalikannya ke panggilan balik Anda.

await pipeline.ExecuteAsync(
    static async (state, token) => await state.CallAsync(token),
    myService);

ResiliencePipelineProvider

Daripada membangun alur ketahanan secara langsung, daftarkan alur bernama di DI dan ambil melalui ResiliencePipelineProvider. Cara ini memusatkan konfigurasi.

builder.Services.AddResiliencePipeline("db", pipeline =>
{
    pipeline.AddRetry(new RetryStrategyOptions())
            .AddTimeout(TimeSpan.FromSeconds(3));
});

Mengambil Alur Bernama

Sisipkan ResiliencePipelineProvider<string> dan ambil alur ketahanan Anda berdasarkan kunci di mana pun Anda membutuhkannya.

public class OrderService
{
    private readonly ResiliencePipeline _pipeline;
    public OrderService(ResiliencePipelineProvider<string> provider)
    {
        _pipeline = provider.GetPipeline("db");
    }
}

Ketahanan untuk HttpClient

Ekstensi AddResilienceHandler memasangkan alur ketahanan ke HttpClient bertipe atau bernama, lalu menerapkannya pada setiap permintaan keluar.

builder.Services.AddHttpClient<CatalogClient>()
    .AddResilienceHandler("catalog", b =>
    {
        b.AddRetry(new HttpRetryStrategyOptions());
        b.AddCircuitBreaker(new HttpCircuitBreakerStrategyOptions());
    });

Penangan Ketahanan Standar

Microsoft menyediakan AddStandardResilienceHandler yang sudah lengkap dan menggabungkan percobaan ulang, pemutus sirkuit, batas waktu, serta pembatasan laju yang wajar dalam urutan yang direkomendasikan.

builder.Services.AddHttpClient<CatalogClient>()
    .AddStandardResilienceHandler();

Alur Ketahanan Dapat Digunakan Ulang dan Ringan

Bangun alur ketahanan sekali dan gunakan kembali untuk banyak eksekusi. Alur tersebut tidak dapat diubah dan aman untuk utas, sehingga membagikannya aman sekaligus efisien.

Kait Pemantauan

Setiap strategi menyediakan panggilan balik (OnRetry, OnOpened, OnTimeout, OnFallback), dan Polly menghasilkan telemetri yang dapat Anda hubungkan ke pencatatan serta metrik untuk mendapatkan visibilitas penuh.

Pemeriksaan Singkat

Uji alur ketahanan.

Rangkuman

ResiliencePipelineBuilder menggabungkan percobaan ulang, pemutus sirkuit, batas waktu, dan pengganti menjadi satu alur yang dapat digunakan kembali; urutannya dari luar ke dalam sehingga sangat penting. Gunakan pembangun generik untuk strategi yang memperhatikan hasil, daftarkan alur bernama dengan AddResiliencePipeline, lalu ambil melalui ResiliencePipelineProvider. Untuk HTTP, AddResilienceHandler atau AddStandardResilienceHandler melindungi setiap permintaan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Alur Ketahanan” gratis?

Ya — teks lengkap “Alur Ketahanan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Alur Ketahanan”?

Gabungkan berbagai strategi ke dalam alur ketahanan. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Alur Ketahanan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Kebijakan Percobaan Ulang
  2. Pola Pemutus Sirkuit
  3. Kebijakan Batas Waktu dan Cadangan
  4. Alur Ketahanan
← Kembali ke C# Academy