


Apakah empat masalah utama yang perlu diselesaikan oleh sistem cache yang diedarkan Java?
Sistem cache yang diedarkan adalah bahagian yang sangat diperlukan dalam seni bina tiga tinggi, yang sangat meningkatkan keselarasan dan kelajuan tindak balas keseluruhan projek, tetapi ia juga membawa masalah baharu yang perlu diselesaikan, iaitu: Penembusan cache , pecahan cache , salji cache dan isu konsistensi cache.
Penembusan cache
Masalah besar pertama ialah penembusan cache. Konsep ini lebih mudah difahami dan berkaitan dengan kadar hit. Jika kadar pukulan rendah, maka tekanan akan tertumpu pada lapisan kegigihan pangkalan data.
Jika kami dapat mencari data yang berkaitan, kami boleh cachenya. Tetapi masalahnya ialah permintaan ini tidak mencecah cache atau lapisan kegigihan Keadaan ini dipanggil penembusan cache.
Sebagai contoh, seperti yang ditunjukkan dalam gambar di atas, dalam sistem log masuk, terdapat serangan luaran, dan ia terus mencuba untuk log masuk menggunakan pengguna yang tidak wujud pengguna adalah maya dan tidak boleh Ia dicache dengan berkesan dan akan ditanya dalam pangkalan data setiap kali, yang akhirnya akan menyebabkan kegagalan prestasi perkhidmatan.
Terdapat banyak penyelesaian untuk masalah ini, mari kita perkenalkan secara ringkas.
Yang pertama ialah cache objek kosong. Bukankah lapisan kegigihan tidak dapat mencari data? Kemudian kita boleh menetapkan hasil permintaan ini kepada null dan memasukkannya ke dalam cache. Dengan menetapkan masa tamat tempoh yang munasabah, keselamatan pangkalan data bahagian belakang boleh dipastikan.
Mencache objek kosong akan menduduki ruang cache tambahan, dan juga akan ada tetingkap masa untuk ketidakkonsistenan data, jadi kaedah kedua ialah menggunakan penapis Bloom untuk memproses sejumlah besar nilai kunci biasa.
Kewujudan atau ketiadaan rekod ialah nilai Bool yang boleh disimpan menggunakan 1 bit sahaja. Penapis Bloom boleh memampatkan operasi ya dan tidak ini ke dalam struktur data. Sebagai contoh, data seperti nombor telefon bimbit dan jantina pengguna sangat sesuai untuk menggunakan penapis Bloom.
Pecahan cache
Pecahan cache juga merujuk kepada situasi di mana permintaan pengguna jatuh pada pangkalan data Dalam kebanyakan kes, ia disebabkan oleh tamat tempoh masa cache.
Kami biasanya menetapkan masa tamat tempoh untuk data dalam cache. Jika sejumlah besar data diperoleh daripada pangkalan data pada masa tertentu dan masa tamat tempoh yang sama ditetapkan, ia akan tamat tempoh pada masa yang sama, menyebabkan kerosakan cache.
Untuk data panas, kami boleh menetapkannya untuk tidak tamat tempoh; atau mengemas kini masa tamatnya apabila diakses item cache yang diimport ke dalam pangkalan data dalam kelompok juga harus cuba memperuntukkan masa tamat tempoh yang agak purata untuk mengelakkan Tidak sah pada; masa yang sama.
Cache avalanche
Perkataan avalanche nampak menakutkan, tetapi keadaan sebenar memang lebih serius. Caching digunakan untuk mempercepatkan sistem, dan pangkalan data bahagian belakang hanyalah sandaran data, bukan alternatif ketersediaan tinggi.
Apabila sistem cache gagal, trafik akan dipindahkan serta-merta ke pangkalan data bahagian belakang. Tidak lama kemudian, pangkalan data akan ditenggelami oleh trafik yang padat dan menutup talian Kegagalan perkhidmatan yang melata ini boleh dipanggil dengan jelas.
Pembinaan cache dengan ketersediaan tinggi adalah sangat penting. Redis menyediakan mod induk-hamba dan kluster Mod kluster mudah digunakan, dan setiap serpihan juga boleh bertindak sebagai hamba induk secara bebas, memastikan ketersediaan yang sangat tinggi.
Selain itu, kami mempunyai penilaian umum tentang kesesakan prestasi pangkalan data. Jika sistem cache ranap, anda boleh menggunakan komponen pengehad semasa untuk memintas permintaan yang mengalir ke pangkalan data.
Ketekalan cache
Selepas komponen cache diperkenalkan, satu lagi masalah sukar ialah ketekalan cache.
Mari kita lihat dahulu bagaimana masalah itu berlaku. Untuk item cache, terdapat empat operasi yang biasa digunakan: tulis, kemas kini, baca dan padam.
Penulisan: Cache dan pangkalan data adalah dua komponen berbeza Selagi penulisan berganda terlibat, terdapat kemungkinan hanya satu daripada penulisan akan berjaya, menyebabkan data tidak konsisten.
Kemas kini: Situasi kemas kini adalah serupa, dua komponen berbeza perlu dikemas kini.
Baca: Baca untuk memastikan bahawa maklumat yang dibaca daripada cache adalah yang terkini dan konsisten dengan maklumat dalam pangkalan data.
Padam: Apabila memadam rekod pangkalan data, bagaimana untuk memadam data dalam cache?
Kerana logik perniagaan agak kompleks dalam kebanyakan kes. Operasi kemas kini sangat mahal Contohnya, baki pengguna ialah nombor yang dikira dengan mengira satu siri aset. Jika aset berkaitan ini perlu memuat semula cache setiap kali ia ditukar, struktur kod akan menjadi sangat mengelirukan dan mustahil untuk dikekalkan.
Saya mengesyorkan menggunakan kaedah ketekalan cache yang dicetuskan Menggunakan kaedah pemuatan malas boleh menjadikan penyegerakan cache sangat mudah:
Apabila membaca cache Pada masa itu, jika ada. tiada data yang berkaitan dalam cache, logik perniagaan yang berkaitan dilaksanakan, data cache dibina dan disimpan dalam sistem cache;
Apabila sumber yang berkaitan dengan item cache berubah, item cache yang sepadan terlebih dahulu dipadamkan, kemudian sumber tersebut dikemas kini dalam pangkalan data, dan akhirnya item cache yang sepadan dipadamkan.
Selain model pengaturcaraan mudah, operasi ini mempunyai manfaat yang jelas. Saya hanya memuatkan cache ini ke dalam sistem cache apabila saya menggunakannya. Jika sumber dicipta dan dikemas kini setiap kali pengubahsuaian dibuat, akan terdapat banyak data sejuk dalam sistem cache. Ini sebenarnya melaksanakan Corak Cache-Aside, yang memuatkan data daripada storan data ke dalam cache atas permintaan Kesan terbesar ialah meningkatkan prestasi dan mengurangkan pertanyaan yang tidak perlu.
Tetapi masih ada masalah dengan ini. Senario yang diperkenalkan seterusnya juga merupakan soalan yang sering ditanya dalam temu bual.
Tindakan kemas kini pangkalan data dan tindakan pemadaman cache yang kami nyatakan di atas jelas sekali bukan dalam transaksi yang sama. Ia boleh menyebabkan kandungan pangkalan data dan kandungan dalam cache menjadi tidak konsisten semasa proses kemas kini.
Dalam temu bual, selagi anda menunjukkan soalan ini, penemuduga akan memberikan ibu jari ke atas.
Anda boleh menggunakan kunci teragih untuk menyelesaikan masalah ini Anda boleh menggunakan kunci untuk mengasingkan operasi pangkalan data dan operasi cache daripada operasi baca cache yang lain. Secara umumnya, operasi baca tidak perlu dikunci Apabila ia menemui kunci, ia akan mencuba semula dan menunggu sehingga tamat.
Atas ialah kandungan terperinci Apakah empat masalah utama yang perlu diselesaikan oleh sistem cache yang diedarkan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver CS6
Alat pembangunan web visual

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa