Rumah  >  Artikel  >  Java  >  Ensiklopedia teknologi belakang (69 mata)!

Ensiklopedia teknologi belakang (69 mata)!

Java后端技术全栈
Java后端技术全栈ke hadapan
2023-08-17 14:47:25973semak imbas

.

Pembangunan belakang, sebagai permata mahkota dalam bidang teknologi Internet, sentiasa menjadi puncak yang dikejar oleh pembangun. Artikel ini akan bermula daripada istilah teknikal yang terlibat dalam pembangunan bahagian belakang, dan memberi semua orang pemahaman yang jelas tentang pembangunan bahagian belakang berdasarkan pembangunan sistem, reka bentuk seni bina, komunikasi rangkaian dan aspek lain, dan penjelasannya akan komprehensif dan mudah difahami.
Jika anda sedang membuat persediaan untuk temu duga, saya cadangkan artikel kepada anda:
★Tutorial langkah demi langkah: Bagaimana untuk bersedia untuk temu duga!

1. Kohesi tinggi/gandingan rendah
Kohesi tinggi merujuk kepada modul perisian Ia terdiri daripada kod yang sangat berkaitan dan hanya bertanggungjawab untuk satu tugas, yang sering dipanggil prinsip tanggungjawab tunggal. Kesepaduan modul mencerminkan keakraban sambungan dalaman dalam modul.

Semakin rapat hubungan antara modul, semakin kuat gandingan, dan semakin teruk kebebasan modul. Tahap gandingan antara modul bergantung pada kerumitan antara muka antara modul, kaedah panggilan dan maklumat yang dipindahkan. Untuk sistem yang lengkap, modul harus wujud secara bebas yang mungkin. Secara amnya, semakin tinggi tahap kesepaduan setiap modul dalam struktur program, semakin rendah tahap gandingan antara modul.

2. Reka bentuk berlebihan

Reka bentuk terlampau bermakna melaksanakan terlalu banyak reka bentuk berorientasikan masa depan atau merumitkan perkara yang agak mudah, terlalu mengejar modulariti, berskala, corak reka bentuk, dan lain-lain, menambahkan ciri yang tidak perlu kepada sistem.

3. Pengoptimuman pramatang

Pengoptimuman pramatang tidak merujuk kepada peringkat awal proses pembangunan, tetapi apabila perubahan keperluan masa depan belum lagi difahami. Bukan sahaja pengoptimuman anda mungkin menyebabkan anda tidak dapat melaksanakan keperluan baharu dengan baik, tetapi tekaan anda pada pengoptimuman yang dijangkakan juga mungkin salah, menyebabkan anda sebenarnya tidak mendapat apa-apa selain merumitkan kod.

Cara yang betul ialah melaksanakan keperluan anda terlebih dahulu dengan kualiti, tulis kes ujian yang mencukupi, dan kemudian profil untuk mencari kesesakan prestasi, baru lakukan pengoptimuman.

4. Refactoring

Refactoring adalah untuk meningkatkan kualiti dan prestasi perisian dengan melaraskan kod program, menjadikan corak reka bentuk dan seni bina program lebih munasabah, dan meningkatkan kebolehskalaan dan kebolehselenggaraan perisian.

5. Broken windows effect

Juga dikenali sebagai Broken windows theory, Broken windows theory adalah teori dalam kriminologi. Teori ini percaya bahawa jika fenomena yang tidak diingini dalam persekitaran dibiarkan wujud, orang ramai akan tergoda untuk meniru atau memburukkan lagi mereka. Ambil bangunan dengan beberapa tingkap pecah Jika tingkap tersebut tidak dibaiki, perosak mungkin memusnahkan lebih banyak tingkap. Akhirnya mereka mungkin memecah masuk ke dalam bangunan dan, jika didapati tidak berpenghuni, mungkin menetap di sana atau membakarnya.

Digunakan untuk kejuruteraan perisian, bahaya tersembunyi dalam kod sistem atau reka bentuk seni bina tidak boleh dibiarkan muncul, jika tidak, apabila masa berlalu, bahaya tersembunyi akan menjadi lebih serius. Sebaliknya, sistem berkualiti tinggi akan membuatkan orang menulis kod berkualiti tinggi secara tidak sengaja.

6. Prinsip saling tidak percaya

bermaksud bahawa dalam keseluruhan pautan hulu dan hilir operasi program, tiada titik yang boleh dijamin benar-benar boleh dipercayai atau mempunyai tingkah laku yang tidak dapat diramalkan pada bila-bila masa, termasuk rangkaian mesin. , perkhidmatan itu sendiri, bergantung pada persekitaran, input dan permintaan, dsb., jadi ia mesti dijaga di mana-mana.

7. Kegigihan

Kegigihan ialah mekanisme untuk menukar data program antara keadaan sementara dan berterusan. Dalam istilah orang awam, data sementara (seperti data dalam ingatan, yang tidak boleh disimpan secara kekal) dikekalkan ke dalam data berterusan (seperti disimpan ke pangkalan data atau cakera setempat, yang boleh disimpan untuk masa yang lama).

8. Bahagian kritikal

Bahagian kritikal digunakan untuk mewakili sumber biasa atau data kongsi, yang boleh digunakan oleh berbilang rangkaian, tetapi pada satu masa, hanya satu utas boleh menggunakannya Setelah sumber bahagian kritikal diduduki, yang lain Jika benang mahu menggunakan sumber ini, ia mesti menunggu.

9 Menyekat/tidak menyekat

Menyekat dan tidak menyekat biasanya menggambarkan interaksi antara berbilang rangkaian. Sebagai contoh, jika utas menduduki sumber bahagian kritikal, maka semua utas lain yang memerlukan sumber ini mesti menunggu dalam bahagian kritikal ini akan menyebabkan utas itu digantung. Keadaan ini menyekat. Pada masa ini, jika utas yang menduduki sumber itu tidak mahu melepaskan sumber itu, maka semua utas lain yang disekat dalam bahagian kritikal ini tidak akan dapat berfungsi. Tanpa sekatan membenarkan berbilang benang memasuki bahagian kritikal pada masa yang sama.

10. Penyegerakan/Asynchronous

Biasanya penyegerakan dan asynchronous merujuk kepada fungsi/kaedah memanggil.

Penyegerakan bermakna apabila mengeluarkan panggilan fungsi, panggilan tidak akan kembali sehingga keputusan diperoleh. Panggilan tak segerak akan kembali serta-merta, tetapi pengembalian segera panggilan tak segerak tidak bermakna tugas anda telah selesai. Ia akan memulakan utas di latar belakang untuk meneruskan tugas, dan memberitahu pemanggil melalui panggilan balik atau kaedah lain selepas tugas itu. selesai.

11. Concurrency/Parallel

Parallel bermaksud berbilang arahan dilaksanakan serentak pada berbilang pemproses pada masa yang sama. Jadi sama ada dari perspektif mikro atau makro, kedua-duanya dilaksanakan bersama.

Concurrency bermaksud bahawa hanya satu arahan boleh dilaksanakan pada masa yang sama, tetapi beberapa arahan proses dilaksanakan dalam putaran pantas, yang mempunyai kesan berbilang proses yang dilaksanakan pada masa yang sama dari perspektif makro, tetapi bukan serentak dari perspektif mikro . , hanya bahagikan masa kepada beberapa segmen, supaya pelbagai proses dapat dilaksanakan dengan cepat dan berselang-seli.

Reka Bentuk Senibina

1. High Concurrency

Disebabkan kemunculan sistem teragih, concurrency tinggi (High Concurrency) biasanya merujuk kepada memastikan sistem dapat memproses banyak permintaan secara selari melalui reka bentuk. Dalam istilah awam, konkurensi tinggi bermakna pada masa yang sama, ramai pengguna mengakses antara muka API atau alamat URL yang sama pada masa yang sama. Ia sering berlaku dalam senario perniagaan dengan bilangan pengguna aktif yang ramai dan kepekatan pengguna yang tinggi.

2. High Availability

High Availability HA (High Availability) adalah salah satu faktor yang perlu diambil kira dalam reka bentuk seni bina sistem teragih ketersediaan perkhidmatannya.

3. Pengasingan membaca dan menulis

Untuk memastikan kestabilan produk pangkalan data, banyak pangkalan data mempunyai fungsi sandaran panas dwi-mesin. Maksudnya, pelayan pangkalan data pertama ialah pelayan pengeluaran yang menyediakan perkhidmatan tambahan, pemadaman dan pengubahsuaian luaran, pelayan pangkalan data kedua terutamanya menjalankan operasi baca.

4. Bersedia sejuk/bersedia panas

Bersedia sejuk: Dua pelayan, satu berjalan dan satu tidak berjalan sebagai sandaran. Dengan cara ini, sebaik sahaja pelayan yang sedang berjalan turun, pelayan sandaran akan berjalan. Penyelesaian siap sedia sejuk agak mudah untuk dilaksanakan, tetapi kelemahan siap sedia sejuk ialah mesin siap sedia tidak akan mengambil alih secara automatik apabila hos gagal, dan memerlukan penukaran perkhidmatan secara aktif.

Sedia panas: Ia biasanya dikenali sebagai kaedah aktif/siap sedia Data pelayan, termasuk data pangkalan data, ditulis kepada dua atau lebih pelayan pada masa yang sama. Apabila pelayan aktif gagal, mesin siap sedia diaktifkan melalui diagnosis perisian (biasanya melalui diagnosis degupan jantung) untuk memastikan aplikasi dipulihkan sepenuhnya kepada penggunaan biasa dalam tempoh yang singkat. Apabila satu pelayan turun, ia secara automatik beralih ke pelayan sandaran yang lain.

5. Berbilang aktif di lokasi terpencil

Berbilang aktif di lokasi terpencil secara amnya merujuk kepada penubuhan pusat data bebas di bandar yang berbeza "Live" adalah relatif kepada sandaran sejuk untuk menyandarkan jumlah penuh data dan biasanya tidak menyokong keperluan perniagaan Hanya apabila bilik komputer utama gagal, ia akan ditukar kepada bilik komputer sandaran, dan pelbagai aktiviti bermakna bilik komputer ini juga perlu mengendalikan lalu lintas dan menyediakan sokongan perniagaan dalam perniagaan harian.

6. Imbangan Muatan

Imbangan beban ialah perkhidmatan pengimbangan beban yang mengagihkan trafik ke berbilang pelayan. Ia secara automatik boleh mengedarkan keupayaan perkhidmatan luaran aplikasi antara berbilang contoh, meningkatkan ketersediaan sistem aplikasi dengan menghapuskan titik kegagalan tunggal, membolehkan anda mencapai tahap toleransi kesalahan aplikasi yang lebih tinggi, dengan itu menyediakan beban yang diperlukan untuk mengagihkan aplikasi dengan lancar. trafik. Kapasiti seimbang untuk memberikan anda perkhidmatan yang cekap, stabil dan selamat.

7. Pemisahan dinamik dan statik

Pemisahan dinamik dan statik merujuk kepada kaedah reka bentuk seni bina untuk memisahkan halaman statik daripada halaman dinamik atau antara muka kandungan statik dan antara muka kandungan dinamik untuk akses sistem yang berbeza dalam seni bina pelayan web, dengan itu meningkatkan prestasi capaian dan kebolehselenggaraan keseluruhan perkhidmatan.

8. Kluster

Kapasiti bawaan serentak bagi satu pelayan sentiasa terhad Apabila kapasiti pemprosesan satu pelayan mencapai kesesakan prestasi, berbilang pelayan digabungkan untuk menyediakan perkhidmatan ini dipanggil kluster dalam kluster dipanggil "nod" kluster, dan setiap nod boleh menyediakan perkhidmatan yang sama, sekali gus menggandakan keupayaan pemprosesan serentak seluruh sistem.

9. Diedarkan

Sistem teragih adalah untuk membahagikan sistem lengkap kepada banyak subsistem bebas mengikut fungsi perniagaan Setiap subsistem dipanggil "perkhidmatan". permintaan. Dalam sistem teragih, subsistem berjalan secara bebas dan disambungkan melalui komunikasi rangkaian untuk mencapai kebolehoperasian data dan perkhidmatan komposit.

10. Teori CAP

Teori CAP bermaksud bahawa dalam sistem teragih, Konsistensi (konsistensi), Ketersediaan (availabiliti), dan Toleransi Partition (toleransi kerosakan partition) tidak boleh diwujudkan pada masa yang sama.

  • Ketekalan: Ia memerlukan pada masa yang sama, semua sandaran data dalam sistem yang diedarkan adalah sama atau dalam keadaan yang sama.
  • Ketersediaan: Walaupun selepas beberapa nod dalam kelompok sistem turun, sistem masih boleh bertindak balas terhadap permintaan pengguna dengan betul.
  • Toleransi Kerosakan Partition: Sistem ini mampu bertolak ansur dengan kegagalan dalam komunikasi rangkaian antara nod.

Ringkasnya, dalam sistem teragih, sehingga dua daripada atribut di atas boleh disokong. Tetapi jelas kerana ia diedarkan, kami terikat untuk membahagikannya Memandangkan ia dibahagikan, kami tidak boleh 100% mengelakkan ralat partition. Oleh itu, kita hanya boleh membuat pilihan antara konsistensi dan ketersediaan.

Dalam sistem yang diedarkan, kita sering mengejar ketersediaan, yang lebih penting daripada konsistensi Jadi bagaimana untuk mencapai ketersediaan tinggi, ini adalah teori lain, iaitu teori BASE, yang mengembangkan lagi teori CAP.

11. Teori ASAS

Teori ASAS menyatakan:

. idea teras teori ialah: kita tidak boleh mencapai konsistensi yang kuat, tetapi setiap aplikasi boleh menggunakan kaedah yang sesuai mengikut ciri perniagaannya sendiri untuk menjadikan sistem mencapai konsistensi akhir.
  • 12. Pengembangan mendatar/pengembangan menegak
    Pengembangan mendatar Scale Out mengagihkan beban dengan menambahkan lebih banyak pelayan atau kejadian program, dengan itu meningkatkan kapasiti storan dan kuasa pengkomputeran. Selain itu, cari akaun rasmi Programming Technology Circle backend dan balas "pusat membeli-belah" untuk mendapatkan pakej hadiah kejutan.
  • Peluasan menegak Skala Naik meningkatkan keupayaan pemprosesan mesin tunggal.
    Terdapat dua cara untuk mengembang secara menegak:
    • (1) Meningkatkan prestasi perkakasan yang berdiri sendiri, contohnya: menambah bilangan teras CPU seperti 32 teras, menaik taraf kepada kad rangkaian yang lebih baik seperti 10G, menaik taraf kepada pemacu keras yang lebih baik seperti SSD, mengembangkan keras kapasiti pemacu seperti 2T, dan kembangkan memori sistem seperti 128G; pemprosesan perkhidmatan, gunakan struktur data tanpa kunci untuk mengurangkan masa tindak balas; Nod dalam pelayan kluster semuanya adalah nod rakan sebaya yang selari Apabila pengembangan diperlukan, lebih banyak nod boleh ditambah untuk meningkatkan keupayaan perkhidmatan kluster. Secara umumnya, laluan kritikal dalam pelayan (seperti log masuk, pembayaran, logik perniagaan teras, dll.) dalam pelayan perlu menyokong pengembangan selari dinamik pada masa jalan.
    • 14. Pengembangan anjal
    • merujuk kepada pengembangan dalam talian dinamik bagi kluster yang digunakan. Sistem pengembangan anjal secara automatik boleh menambah lebih banyak nod (termasuk nod storan, nod pengkomputeran dan nod rangkaian) mengikut persekitaran perniagaan sebenar dan strategi tertentu untuk meningkatkan kapasiti sistem, meningkatkan prestasi sistem, atau meningkatkan kebolehpercayaan sistem, atau mencapai tiga matlamat ini di masa yang sama.
      15. Nyatakan penyegerakan/penyegerakan bingkai

      Nyatakan penyegerakan: Penyegerakan keadaan bermakna pelayan bertanggungjawab untuk mengira semua logik permainan dan menyiarkan hasil pengiraan ini keputusan permainan.

      Ciri: Penyegerakan keadaan sangat selamat, kemas kini logik mudah, pemotongan dan penyambungan semula adalah pantas, tetapi kecekapan pembangunan rendah, trafik rangkaian meningkat dengan kerumitan permainan, dan pelayan perlu menanggung tekanan yang lebih besar.

      Penyegerakan bingkai: Pelayan hanya memajukan mesej tanpa sebarang pemprosesan logik Setiap pelanggan mempunyai bilangan bingkai sesaat yang sama dan memproses data input yang sama dalam setiap bingkai.

      Ciri: Penyegerakan bingkai perlu memastikan sistem mempunyai output yang sama di bawah input yang sama. Penyegerakan bingkai mempunyai kecekapan pembangunan yang tinggi, penggunaan trafik yang rendah dan kestabilan, dan memberikan sedikit tekanan pada pelayan. Walau bagaimanapun, keperluan rangkaian adalah tinggi, masa pemotongan dan penyambungan semula adalah panjang, dan tekanan pengkomputeran pelanggan adalah tinggi.

      Komunikasi rangkaian

      1. Kolam sambungan

      Wujudkan kumpulan penampan sambungan terlebih dahulu dan sediakan satu set strategi penggunaan sambungan, peruntukan dan pengurusan supaya sambungan dalam kumpulan sambungan boleh digunakan semula dengan cekap dan selamat, mengelakkan overhed penubuhan sambungan yang kerap dan penutupan.

      2. Pemutus sambungan dan penyambungan semula

      Disebabkan turun naik rangkaian, pengguna terputus sambungan dari pelayan sekali-sekala Selepas rangkaian dipulihkan, pelayan cuba menyambungkan pengguna kepada status dan data apabila mereka diputuskan sambungannya.

      3. Kegigihan sesi

      Kegigihan sesi merujuk kepada mekanisme pada pengimbang beban yang boleh mengenal pasti perkaitan antara proses interaksi antara pelanggan dan pelayan, dan memastikan satu siri akses yang berkaitan semasa melakukan pengimbangan beban semuanya ditetapkan kepada sebuah mesin. Untuk meletakkannya dalam istilah manusia: berbilang permintaan yang dimulakan semasa sesi semuanya akan jatuh pada mesin yang sama.

      4. Sambungan panjang/sambungan pendek

      biasanya merujuk kepada sambungan panjang dan sambungan pendek TCP. Sambungan yang panjang bermakna selepas sambungan TCP diwujudkan, sambungan dikekalkan Secara amnya, degupan jantung dihantar kepada satu sama lain untuk mengesahkan kewujudan data perniagaan dihantar beberapa kali di tengah-tengah, dan sambungan biasanya tidak aktif terputus. Sambungan pendek biasanya merujuk kepada mewujudkan sambungan, melaksanakan transaksi (seperti permintaan http), dan kemudian menutup sambungan.

      5. Kawalan aliran/kawalan kesesakan

      Kawalan aliran menghalang penghantar daripada menghantar terlalu cepat dan meletihkan sumber penerima, sehingga penerima tidak mempunyai masa untuk memproses.

      Kawalan kesesakan menghalang pengirim daripada menghantar mesej terlalu cepat, menyebabkan rangkaian tidak mempunyai masa untuk memproses dan menyebabkan kesesakan, yang seterusnya menyebabkan prestasi bahagian ini malah keseluruhan rangkaian merosot menyebabkan perkhidmatan komunikasi rangkaian terhenti.

      6 Kesan gerombolan gemuruh

      Kesan gerombolan gemuruh juga dipanggil kesan kumpulan gemuruh, tetapi secara ringkasnya fenomena gerombolan gemuruh ialah apabila beberapa proses (benang berbilang) disekat pada masa yang sama menunggu? untuk acara yang sama (keadaan tidur), jika acara yang anda tunggu berlaku, maka ia akan membangunkan semua proses menunggu (atau utas), tetapi pada akhirnya hanya satu proses (benang) boleh memperoleh "kawalan" ini masa dan proses acara, manakala proses lain (benang) gagal untuk mendapatkan "kawalan" dan hanya boleh memasuki keadaan tidak aktif Fenomena dan pembaziran prestasi ini dipanggil gerombolan gemuruh.

      7. NAT

      NAT (Terjemahan Alamat Rangkaian) adalah untuk menggantikan maklumat alamat dalam pengepala paket IP. NAT biasanya digunakan di pintu keluar rangkaian organisasi untuk menyediakan kebolehcapaian rangkaian awam dan ketersambungan protokol lapisan atas dengan menggantikan alamat IP rangkaian dalaman dengan alamat IP keluar.

      Kesalahan tidak normal

      1. Masa Henti

      Masa Henti, secara amnya merujuk kepada hos komputer ranap akibat kegagalan yang tidak dijangka. Kedua, sesetengah pelayan, seperti kebuntuan pangkalan data, juga boleh dipanggil masa henti Sesetengah perkhidmatan pada sesetengah pelayan menutup, boleh dikatakan.

      2. coredump

      Apabila ralat program berlaku dan terganggu secara tidak normal, OS akan menyimpan status semasa kerja program ke dalam fail coredunmp. Biasanya fail coredump mengandungi memori, status daftar, penuding tindanan, maklumat pengurusan memori, dsb. semasa program berjalan.

      3. Penembusan Cache/Breakdown/Avalanche

      Penembusan Cache: Penembusan cache merujuk kepada menanyakan data yang pasti tidak wujud Memandangkan cache tidak melanda, ia perlu disoal dari pangkalan data didapati, ia tidak akan ditulis ke dalam cache, yang akan menyebabkan data yang tidak wujud ini ditanya dalam pangkalan data setiap kali ia diminta, sekali gus memberi tekanan pada pangkalan data.

      Pecahan cache: Pecahan cache merujuk kepada apabila kunci tempat liputan tamat tempoh pada masa tertentu, dan terdapat sejumlah besar permintaan serentak untuk kunci ini pada masa ini, jadi sejumlah besar permintaan berlaku db itu.

      Cache avalanche: Cache avalanche merujuk kepada masa tamat tempoh sejumlah besar data dalam cache, dan sejumlah besar data pertanyaan menyebabkan tekanan yang berlebihan pada pangkalan data dan juga masa henti.

      Perbezaan daripada pecahan cache ialah pecahan cache ialah kegagalan kekunci tempat liputan, dan runtuhan cache ialah kegagalan sejumlah besar kunci pada masa yang sama.

      4. 500/501/502/503/504/505

      500 Ralat Pelayan Dalaman: Secara amnya, pelayan menghadapi situasi yang tidak dijangka dan tidak dapat menyelesaikan permintaan. Sebab yang mungkin:

      • 1. Ralat program, seperti ralat sintaks ASP atau PHP

      • 2 Disebabkan keterbatasan sumber sistem.

      501 Tidak dilaksanakan: Pelayan tidak memahami atau menyokong permintaan HTTP yang diminta.

      502 Bad Gateway: Pelayan WEB gagal. Ia mungkin disebabkan oleh proses program yang tidak mencukupi. php-fpm yang diminta telah dilaksanakan, tetapi ia belum selesai atas sebab tertentu, yang akhirnya menyebabkan penamatan php-fpm. proses. Sebab yang mungkin:

      • 1, bilangan proses php-cgi tidak mencukupi

      • 2
      • 3 Proses php-cgi mati;

      503 Perkhidmatan Tidak Tersedia: Pelayan tidak tersedia pada masa ini. Pelayan penyelenggaraan sistem tidak dapat memproses permintaan pelanggan buat sementara waktu. Ini hanyalah keadaan sementara. Anda boleh menghubungi pembekal pelayan.

      504 Gateway Timeout: Ralat pelayan 504 menunjukkan tamat masa, yang bermaksud bahawa permintaan yang dihantar oleh pelanggan tidak mencapai get laluan, dan permintaan itu tidak mencapai php-fpm yang boleh dilaksanakan Ini biasanya berkaitan dengan konfigurasi daripada nginx.conf.

      Versi HTTP 505 Tidak Disokong: Pelayan tidak menyokong versi protokol HTTP yang digunakan dalam permintaan. (Versi HTTP tidak disokong)

      Kecuali ralat 500, yang mungkin ralat bahasa pengaturcaraan, ralat selebihnya mungkin boleh difahami sebagai masalah dengan konfigurasi pelayan atau pelayan.

      5. Limpahan memori/kebocoran memori

      Limpahan memori: Limpahan memori (Out Of Memory) bermakna apabila program memohon memori, tidak ada memori yang mencukupi untuk digunakan oleh pemohon, atau dengan kata lain, ia memberi anda blok untuk menyimpan data jenis int Ruang storan, tetapi anda menyimpan data jenis panjang, maka hasilnya ialah memori tidak mencukupi, dan ralat OOM akan dilaporkan, iaitu limpahan memori yang dipanggil.

      Memory Leak: Memory Leak merujuk kepada memori timbunan yang diperuntukkan secara dinamik dalam program yang tidak dikeluarkan atau tidak boleh dikeluarkan atas sebab tertentu, mengakibatkan pembaziran memori sistem, yang membawa kepada akibat yang serius seperti memperlahankan atur cara atau bahkan sistem ranap.

      6. Mengendalikan kebocoran

      Mengendalikan kebocoran ialah proses tidak melepaskan pemegang fail yang terbuka selepas memanggil fail sistem. Fenomena umum selepas kebocoran pemegang ialah mesin menjadi perlahan, CPU melonjak, dan penggunaan CPU cgi atau pelayan di mana kebocoran pemegang berlaku meningkat.

      7. Kebuntuan

      Kebuntuan merujuk kepada fenomena penyekatan yang disebabkan oleh dua atau lebih utas yang bersaing untuk mendapatkan sumber atau berkomunikasi antara satu sama lain Tanpa kekuatan luar, mereka semua dihalang sistem dikatakan dalam keadaan buntu atau sistem mengalami kebuntuan.

      8. Sampukan lembut/gangguan keras

      Sampukan keras: Sampukan yang biasa kita rujuk merujuk kepada sampukan keras (hardirq).

      Digunakan terutamanya untuk memberitahu sistem pengendalian perubahan dalam status persisian sistem.

      Soft interrupt: 1. Biasanya kernel terganggu oleh rutin servis hard interrupt 2. Untuk memenuhi keperluan sistem masa nyata, pemprosesan interrupt harus secepat mungkin.

      Untuk merealisasikan ciri ini, Linux menggunakan sampukan keras untuk memproses tugasan yang boleh diselesaikan dalam masa yang singkat apabila sampukan berlaku, dan tugasan yang memerlukan masa yang lama untuk memproses acara selesai selepas sampukan, iaitu sampukan lembut (softirq).

      9. Glitch

      Dalam masa yang singkat, penunjuk prestasi pelayan (seperti trafik, IO cakera, penggunaan CPU, dll.) jauh lebih besar daripada tempoh masa sebelum dan selepas detik itu. Kemunculan gangguan bermakna sumber pelayan tidak sekata dan tidak digunakan secukupnya, yang boleh membawa kepada masalah lain yang lebih serius.

      10. Serangan ulang tayang

      Penyerang menghantar paket yang telah diterima oleh hos destinasi untuk menipu sistem Ia digunakan terutamanya untuk proses pengesahan identiti dan memusnahkan ketepatan pengesahan. Ia adalah sejenis serangan yang secara berterusan secara berniat jahat atau secara penipuan mengulangi penghantaran data yang sah Serangan ulangan boleh dilakukan oleh pemula atau oleh musuh yang memintas dan menghantar semula data. Penyerang menggunakan pemantauan rangkaian atau kaedah lain untuk mencuri bukti kelayakan pengesahan dan kemudian menghantarnya semula ke pelayan pengesahan.

      11. Pulau Rangkaian

      Pulau Rangkaian merujuk kepada situasi dalam persekitaran kluster di mana sesetengah mesin kehilangan sambungan rangkaian dengan keseluruhan kluster, berpecah kepada kluster kecil dan ketidakkonsistenan data berlaku.

      12. Data condong

      Untuk sistem kluster, cache secara amnya diedarkan, iaitu, nod yang berbeza bertanggungjawab untuk julat data cache tertentu. Kami tidak menyebarkan data cache dengan cukup, yang mengakibatkan sejumlah besar data cache tertumpu pada satu atau beberapa nod perkhidmatan, yang dipanggil data skew. Secara umumnya, data condong disebabkan oleh pelaksanaan pengimbangan beban yang lemah.

      13. Split-brain

      Split-brain merujuk kepada pemisahan sistem yang disebabkan oleh ketidakbolehcapaian rangkaian antara beberapa nod dalam sistem kluster Kluster kecil yang berbeza akan menyediakan perkhidmatan mengikut keadaan masing-masing, dan kluster asal akan mempunyai perkhidmatan yang tidak konsisten di. pada masa yang sama, menyebabkan nod bersaing antara satu sama lain untuk sumber, kekacauan sistem dan kerosakan data.

      Penggera Pemantauan

      1. Pemantauan Perkhidmatan

      Tujuan utama pemantauan perkhidmatan adalah untuk mengesan dengan tepat dan cepat apabila masalah perkhidmatan berlaku atau akan berlaku untuk mengurangkan skop impak. Secara umumnya terdapat banyak kaedah untuk pemantauan perkhidmatan, yang boleh dibahagikan kepada peringkat:

      • Lapisan sistem (CPU, status rangkaian, IO, beban mesin, dll.)
      • Lapisan aplikasi (status proses, log ralat, daya pemprosesan, dll.)
      • Lapisan perniagaan/kod antara muka perkhidmatan , masa tindak balas) )
      • Lapisan pengguna (tingkah laku pengguna, pemantauan pendapat umum, mata terkubur bahagian hadapan)
      2 Pemantauan pautan penuh

      Ujian pendailan perkhidmatan: Ujian pendailan perkhidmatan ialah kaedah pemantauan. untuk mengesan ketersediaan perkhidmatan (aplikasi). Perkhidmatan sasaran dikesan secara berkala melalui nod ujian dail, yang diukur terutamanya mengikut ketersediaan dan masa tindak balas Biasanya terdapat berbilang nod ujian dail di tempat yang berbeza.

      Pengesanan nod: Pengesanan nod ialah kaedah pemantauan yang digunakan untuk menemui dan menjejaki ketersediaan dan kelancaran rangkaian antara nod dalam bilik komputer yang berbeza (pusat data) Ia diukur terutamanya dengan masa tindak balas, kadar kehilangan paket dan pengesanan lompatan kaedah Biasanya ping, mtr atau protokol peribadi lain.

      Penapisan penggera: Tapis penggera boleh ramal tertentu dan kecualikan data daripada statistik penggera, seperti ralat respons http 500 yang disebabkan oleh sebilangan kecil lawatan perangkak, maklumat pengecualian tersuai sistem perniagaan, dsb.

      Penyahduplikasi penggera: Apabila penggera dimaklumkan kepada orang yang bertanggungjawab, penggera yang sama tidak akan diterima lagi sehingga penggera dipulihkan.

      Penindasan Penggera: Untuk mengurangkan gangguan yang disebabkan oleh jitter sistem, penindasan juga perlu dilaksanakan Sebagai contoh, beban tinggi seketika pada pelayan mungkin biasa sahaja untuk diambil serius.

      Pemulihan penggera: Kakitangan pembangunan/operasi dan penyelenggaraan bukan sahaja perlu menerima pemberitahuan penggera, tetapi juga perlu menerima pemberitahuan bahawa kerosakan telah dihapuskan dan penggera telah kembali normal.

      Penggera bercantum: Gabungkan berbilang penggera yang serupa yang dijana pada masa yang sama Contohnya, jika kluster perkhidmatan mikro mempunyai berbilang penggera dengan beban subperkhidmatan yang berlebihan pada masa yang sama, ia perlu digabungkan menjadi satu penggera.

      Penumpuan penggera: Kadangkala apabila penggera berlaku, ia sering disertai dengan penggera lain. Pada masa ini, anda hanya boleh menjana penggera untuk punca utama dan penggera lain akan disatukan menjadi sub-penggera dan pemberitahuan akan dihantar bersama-sama. Sebagai contoh, apabila pelayan awan mempunyai penggera beban CPU, ia selalunya disertakan dengan penggera ketersediaan untuk semua sistem yang dibawanya.

      Pemulihan kerosakan sendiri: Pengesanan masa nyata penggera, pra-diagnosis dan analisis, pemulihan kerosakan automatik dan membuka sistem sekeliling untuk menutup keseluruhan proses. . Setiap perkhidmatan berjalan dalam proses bebasnya sendiri, dan perkhidmatan berkomunikasi antara satu sama lain menggunakan mekanisme komunikasi yang ringan (biasanya Restful API berdasarkan HTTP Setiap perkhidmatan dibina di sekitar perniagaan tertentu dan boleh digunakan secara bebas ke persekitaran pengeluaran, seperti pengeluaran). persekitaran, dsb.

      2. Penemuan perkhidmatanPenemuan perkhidmatan merujuk kepada menggunakan pusat pendaftaran untuk merekodkan maklumat tentang semua perkhidmatan dalam sistem yang diedarkan supaya perkhidmatan lain dapat mencari perkhidmatan berdaftar ini dengan cepat. Penemuan perkhidmatan ialah modul teras yang menyokong SOA berskala besar dan seni bina perkhidmatan mikro, dan ia harus tersedia setinggi mungkin.

      3. Traffic Peak Shaving

      Jika anda menonton keluk pemantauan permintaan loteri atau sistem jualan kilat, anda akan mendapati bahawa sistem jenis ini akan mempunyai puncak semasa acara dibuka , volum permintaan sistem, Beban mesin secara amnya agak stabil. Untuk menjimatkan sumber mesin, kami tidak boleh sentiasa menyediakan keupayaan sumber maksimum untuk menyokong permintaan puncak jangka pendek. Oleh itu, beberapa cara teknikal perlu digunakan untuk melemahkan puncak permintaan serta-merta dan memastikan daya pemprosesan sistem dikawal di bawah permintaan puncak. Keratan puncak juga boleh digunakan untuk menghapuskan gangguan dan menjadikan penggunaan sumber pelayan lebih seimbang dan penuh. Strategi pencukuran puncak biasa termasuk baris gilir, pengehadan kekerapan, penapisan hierarki, caching berbilang peringkat, dsb.

      4. Keserasian versi

      Dalam proses menaik taraf versi, anda perlu mempertimbangkan sama ada struktur data baharu boleh memahami dan menghuraikan data lama selepas versi dinaik taraf, sama ada protokol yang baru diubah suai boleh memahami protokol lama dan membuat jangkaan dan berurusan dengan sewajarnya. Ini memerlukan keserasian versi semasa proses reka bentuk perkhidmatan.

      5. Overload protection

      Overload bermakna beban semasa telah melebihi kapasiti pemprosesan maksimum sistem. Kejadian lebihan akan menyebabkan beberapa perkhidmatan tidak tersedia jika tidak dikendalikan dengan betul, ia berkemungkinan besar menyebabkan perkhidmatan tersebut tidak tersedia sama sekali atau runtuhan salji. Perlindungan beban lampau ialah langkah yang diambil terhadap situasi tidak normal ini untuk mengelakkan perkhidmatan daripada tidak tersedia sepenuhnya.

      6. Servis pemutus litar

      Fungsi pemutus litar servis adalah serupa dengan fius isi rumah kami Apabila perkhidmatan menjadi tidak tersedia atau masa respons habis, untuk mengelakkan keseluruhan sistem daripada salji, panggilan ke perkhidmatan dihentikan buat sementara waktu.

      7 Penurunan taraf perkhidmatan

      Penurunan taraf perkhidmatan ialah apabila tekanan pelayan meningkat secara mendadak, sesetengah perkhidmatan dan halaman diturunkan taraf secara strategik berdasarkan keadaan perniagaan dan trafik semasa, untuk melepaskan sumber pelayan untuk memastikan operasi biasa tugas teras. Degradasi selalunya menentukan tahap yang berbeza, dan melakukan pemprosesan yang berbeza apabila menghadapi tahap pengecualian yang berbeza. Di samping itu, cari akaun awam Java Architect Technical Backend dan balas "Spring" untuk mendapatkan pakej hadiah kejutan.

      Bergantung pada kaedah perkhidmatan: anda boleh menolak perkhidmatan, anda boleh menangguhkan perkhidmatan, dan kadangkala anda boleh memberikan perkhidmatan secara rawak.

      Bergantung pada skop perkhidmatan: fungsi tertentu boleh dipotong, atau modul tertentu boleh dipotong.

      Ringkasnya, penurunan taraf perkhidmatan memerlukan strategi penurunan taraf yang berbeza berdasarkan keperluan perniagaan yang berbeza. Tujuan utamanya ialah walaupun perkhidmatan itu rosak, ia adalah lebih baik daripada tiada.

      8. Meltdown VS Downgrade

      Mata yang sama: Matlamat adalah sama, bermula dari ketersediaan dan kebolehpercayaan, untuk mengelakkan ranap sistem, tetapi pada akhirnya, pengguna mengalami bahawa beberapa fungsi tidak tersedia buat sementara waktu;

      Titik Berbeza: Sebab pencetus adalah berbeza Pemutus litar servis biasanya disebabkan oleh kegagalan perkhidmatan tertentu (perkhidmatan hiliran), manakala kemerosotan perkhidmatan secara amnya dipertimbangkan daripada beban keseluruhan

      9 mengehadkan boleh dianggap sebagai jenis kemerosotan perkhidmatan Aliran adalah untuk mengehadkan aliran masukan dan keluaran sistem untuk mencapai tujuan melindungi sistem. Secara umumnya, daya tampung sistem boleh diukur Untuk memastikan operasi sistem yang stabil, sebaik sahaja ambang yang perlu dihadkan dicapai, lalu lintas perlu dihadkan dan beberapa langkah mesti diambil untuk mencapai tujuan. mengehadkan lalu lintas. Contohnya: pemprosesan tertunda, penolakan pemprosesan, atau penolakan sebahagian pemprosesan, dsb.

      10. Fault masking

      Alih keluar mesin yang rosak dari kluster untuk memastikan permintaan baru tidak diedarkan kepada mesin yang rosak.
      Kaedah ujian
      1. Ujian kotak hitam/kotak putih

      Pengujian kotak hitam tidak mengambil kira struktur dalaman dan struktur logik program Ia digunakan terutamanya untuk menguji sama ada fungsi sistem memenuhi spesifikasi keperluan. Secara amnya, akan ada nilai input, nilai input, dan nilai jangkaan untuk perbandingan.

      Pengujian kotak putih digunakan terutamanya dalam fasa ujian unit, terutamanya untuk ujian peringkat kod Untuk struktur logik dalaman program, kaedah ujian termasuk: liputan pernyataan, liputan keputusan, liputan keadaan, liputan laluan dan gabungan keadaan. liputan

      2. Ujian Unit /Integrasi/Sistem/Penerimaan

      Pengujian perisian secara amnya dibahagikan kepada 4 peringkat: ujian unit, ujian integrasi, ujian sistem dan ujian penerimaan.

      Ujian unit: Ujian unit adalah untuk menyemak dan mengesahkan unit terkecil yang boleh disahkan dalam perisian, seperti modul, proses, kaedah, dsb. Ujian unit mempunyai butiran terkecil dan biasanya diuji oleh pasukan pembangunan menggunakan pendekatan kotak putih Ia terutamanya menguji sama ada unit itu mematuhi "reka bentuk".

      Pengujian integrasi: Ujian integrasi juga dipanggil ujian pemasangan Ia biasanya menguji semua modul program dengan cara yang teratur dan berperingkat berdasarkan ujian unit. Ujian integrasi adalah antara ujian unit dan ujian sistem, memainkan "peranan jambatan". Secara amnya, pasukan pembangunan menggunakan pendekatan kotak putih ditambah kotak hitam untuk menguji, yang bukan sahaja mengesahkan "reka bentuk" tetapi juga mengesahkan "keperluan".

      Pengujian sistem: Semasa ujian sistem, perisian yang telah disepadukan diuji akan digunakan sebagai sebahagian daripada sistem komputer dan digabungkan dengan bahagian lain sistem untuk menjalankan satu siri ujian yang ketat dan berkesan dalam persekitaran operasi sebenar untuk menemui masalah yang berpotensi dengan perisian, untuk memastikan operasi normal sistem. Pengujian sistem mempunyai butiran terbesar dan secara amnya diuji oleh pasukan ujian bebas menggunakan pendekatan kotak hitam Ia terutamanya menguji sama ada sistem memenuhi "spesifikasi keperluan".

      Ujian Penerimaan: Ujian penerimaan, juga dipanggil ujian penghantaran, adalah ujian formal berdasarkan keperluan pengguna dan proses perniagaan untuk menentukan sama ada sistem memenuhi kriteria penerimaan Pengguna, pelanggan atau agensi lain yang diberi kuasa memutuskan sama ada untuk menerima sistem. Ujian penerimaan adalah serupa dengan ujian sistem Perbezaan utama adalah bahawa penguji adalah berbeza.

      3. Ujian regresi

      Selepas kecacatan ditemui dan diperbetulkan, atau ciri baharu ditambahkan pada perisian, uji semula. Digunakan untuk menyemak sama ada kecacatan yang ditemui telah diperbetulkan dan pengubahsuaian tidak menyebabkan masalah baru.

      4. Ujian asap

      Istilah ini berasal dari industri perkakasan. Selepas membuat perubahan atau pembaikan pada sekeping perkakasan atau komponen perkakasan, gunakan kuasa terus pada peranti. Jika tiada asap, komponen itu lulus ujian. Dalam perisian, istilah "ujian asap" menerangkan proses mengesahkan perubahan kod sebelum membenamkannya ke dalam pepohon sumber produk.

      Pengujian asap ialah strategi pengesahan fungsi asas yang pantas untuk pakej versi perisian semasa proses pembangunan perisian Ia adalah cara untuk mengesahkan dan mengesahkan fungsi asas perisian, dan bukan ujian mendalam bagi pakej versi perisian.

      Contohnya: untuk ujian asap sistem log masuk, kami hanya perlu menguji nama pengguna dan kata laluan yang betul untuk mengesahkan titik fungsi teras log masuk Bagi kotak input, aksara khas, dsb., ia boleh dilakukan selepas ujian asap.

      5. Ujian Prestasi

      Ujian prestasi adalah untuk menguji pelbagai penunjuk prestasi sistem melalui alat ujian automatik untuk mensimulasikan pelbagai keadaan beban biasa, puncak dan tidak normal. Kedua-dua ujian beban dan ujian tekanan adalah ujian prestasi, dan kedua-duanya boleh digabungkan.

      Melalui ujian beban, prestasi sistem di bawah pelbagai beban kerja ditentukan Matlamatnya adalah untuk menguji perubahan dalam pelbagai penunjuk prestasi sistem apabila beban meningkat secara beransur-ansur.

      Ujian tekanan ialah ujian yang menentukan kesesakan atau titik prestasi sistem yang tidak boleh diterima untuk mendapatkan tahap perkhidmatan maksimum yang boleh disediakan oleh sistem.

      6. Ujian penanda aras

      Tanda aras juga merupakan kaedah ujian prestasi, digunakan untuk mengukur prestasi operasi sebenar maksimum perkakasan mesin dan kesan peningkatan prestasi pengoptimuman perisian. Ia juga boleh digunakan untuk mengenal pasti CPU kod tertentu . Atau masalah kecekapan memori

      Ujian A/B ialah menggunakan dua atau lebih kumpulan sampel yang ditetapkan secara rawak dengan nombor yang serupa untuk perbandingan Jika keputusan eksperimen kumpulan eksperimen dan kumpulan perbandingan adalah signifikan secara statistik dalam penunjuk sasaran, ia boleh menerangkan kefungsian Kumpulan boleh membawa kepada hasil yang anda inginkan, membantu anda mengesahkan hipotesis atau membuat keputusan produk.
      8. Ujian liputan kod

      Liputan kod ialah ukuran dalam ujian perisian, yang menerangkan perkadaran dan takat kod sumber dalam program yang diuji Perkadaran yang terhasil dipanggil liputan kod. Apabila melakukan ujian unit, liputan kod sering digunakan sebagai penunjuk untuk mengukur kualiti ujian liputan kod digunakan untuk menilai penyempurnaan tugasan ujian Sebagai contoh, liputan kod mesti mencapai 80% atau 90%. Sejak itu, penguji telah berusaha keras untuk mereka bentuk kod liputan kes.

      Release Deployment

      1. DEV/PRO/FAT/UAT

      DEV (Persekitaran pembangunan): Persekitaran pembangunan, digunakan untuk penyahpepijatan oleh pembangun, dengan perubahan versi yang besar.

      FAT (Persekitaran Ujian Penerimaan Ciri): Persekitaran ujian penerimaan berfungsi, digunakan oleh penguji perisian untuk ujian.

      UAT (Persekitaran Ujian Penerimaan Pengguna): Persekitaran ujian penerimaan pengguna, digunakan untuk pengesahan berfungsi dalam persekitaran pengeluaran dan boleh digunakan sebagai persekitaran pra-keluaran.

      PRO (Persekitaran pengeluaran): Persekitaran pengeluaran, persekitaran dalam talian formal.

      2. Keluaran skala kelabu

      Keluaran skala kelabu bermaksud bahawa dalam proses menaik taraf versi, sesetengah pengguna akan dinaik taraf kepada ciri produk melalui kawalan partition, kawalan senarai putih, dsb., manakala pengguna yang lain akan kekal tidak berubah dan akan dinaik taraf selepas tempoh masa Jika tiada isu maklum balas daripada pengguna ciri produk, kami akan secara beransur-ansur mengembangkan skop dan akhirnya membuka ciri versi baharu kepada semua pengguna keluaran Skala kelabu boleh memastikan kestabilan keseluruhan sistem ditemui dan diubah suai dalam skala kelabu awal untuk memastikan kesannya.

      3. Rollback

      merujuk kepada tindakan memulihkan program atau data kepada keadaan betul terakhir (atau versi stabil terakhir) apabila program atau ralat pemprosesan data berlaku.

Atas ialah kandungan terperinci Ensiklopedia teknologi belakang (69 mata)!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Java后端技术全栈. Jika ada pelanggaran, sila hubungi admin@php.cn Padam