Persyaratan: Memilikinya di .NET FrameworkOutputCacheAttributeFitur ini (yang digunakan untuk menandai metode operasi caching outputnya) menyimpan data yang sering diakses dan jarang berubah dalam memori dan mengeluarkan konten respons secara langsung, yang dapat meningkatkan kinerja konkurensi situs web dan mengurangi tekanan pada server dan database. Fitur ini hanya ditambahkan kembali di .NET 7.
ASP.NET Output cache middleware di Core:Login hyperlink terlihat.
Prinsip penembolokan output: setiap permintaan pertama-tama menentukan apakah ada di cache, jika tidak ada, menulis konten respons ke cache dan kemudian mengeluarkan respons, jika cache ada, respons output data langsung diperoleh dari cache. melalui cache keluaranMengurangi kueri database, mengurangi beberapa operasi logis, dan mengambil langsung dari cache meningkatkan konkurensi dan responsivitas。
Karena tidak ada fitur OutputCacheAttribute di .NET 6, kita dapat mengimplementasikan sendiri cache output sederhana.
Dengan tidak adanya cache output, hasil uji stres adalah sebagai berikut (Database proyek terhubung ke server Hong Kong):
Hasil tes stres: Hanya 10 konkurensi per detik yang diizinkan (lambat dalam transfer database).
Untuk mencoba menambahkan cache output, pertama-tama, buat fitur OutputCacheAttribute baru, kodenya adalah sebagai berikut:
Buat middleware OutputCacheMiddleware baru untuk memblokir permintaan, dan kodenya adalah sebagai berikut:
Tambahkan middleware UseOutputCacheExtensions ke Program.cs dengan kode berikut:
Terakhir, tambahkan fitur ke metode pengontrol dengan kode berikut:
Sekali lagi dengan pengujian tekanan, itu dapat dicapaiLebih dari 10.000 konkurensi per detik, seperti yang ditunjukkan pada gambar di bawah ini:
cassowary.exe run -u http://localhost:5222/zh-cn -c 50 -n 100000
(Akhir)
|