Rumah > Soal Jawab > teks badan
PHP中文网2017-04-18 09:41:50
Pertama sekali, anda perlu memahami mengapa sistem menggunakan diedarkan.
Dengan pembangunan Internet, banyak kesesakan prestasi projek projek tunggal tradisional telah menjadi semakin ketara Kesesakan prestasi boleh mempunyai beberapa aspek.
1. Lapisan perkhidmatan aplikasi: Apabila bilangan pengguna meningkat, jumlah konkurensi meningkat dan satu projek tidak dapat menahan kesesakan prestasi yang disebabkan oleh permintaan serentak yang besar.
2. Lapisan pangkalan data asas: Dengan perkembangan perniagaan, tekanan pada pangkalan data semakin meningkat, mengakibatkan kesesakan prestasi.
Mengenai dua perkara di atas, saya rasa ia boleh diselesaikan dari dua aspek.
Lapisan perkhidmatan aplikasi:
Terdapat beberapa penyelesaian untuk lapisan perkhidmatan aplikasi:
Kluster sistem aplikasi:
Kluster sistem aplikasi yang paling mudah ialah kluster pelayan, seperti kluster tomcat. Apabila menggunakan kluster sistem, masalah yang lebih menonjol ialah perkongsian sesi boleh diselesaikan melalui pemalam pelayan. Yang satu lagi juga boleh dilaksanakan melalui middleware seperti redis.
Pembahagian berasaskan perkhidmatan:
Pembahagian berasaskan perkhidmatan ialah kaedah yang sangat hangat pada masa ini. Sekarang semua orang bercakap tentang perkhidmatan mikro. Dengan membahagikan projek tradisional kepada perkhidmatan, perkhidmatan boleh dipisahkan secara bebas, dan perkhidmatan tunggal boleh dikembangkan secara mendatar. Masalah klasik yang dihadapi dalam pemisahan perkhidmatan ialah masalah transaksi teragih. Pada masa ini, terdapat beberapa penyelesaian transaksi yang diedarkan yang biasa digunakan: ketekalan mesej akhirnya, transaksi pampasan TCC dan pemberitahuan usaha terbaik. Untuk butiran, anda boleh merujuk kepada penyelesaian transaksi teragih blog ini
Lapisan pangkalan data asas:
Jika tekanan prestasi sistem muncul dalam pangkalan data, maka kami boleh menyelesaikannya dengan penyelesaian seperti pengasingan baca-tulis, pangkalan data dan pembahagian jadual, dsb. Memandangkan saya tidak mempunyai pengalaman yang mencukupi dalam bidang ini, anda boleh merujuk kepada beberapa dokumen lain.
Perisian tengah pemisahan pangkalan data Mycat dan pemisahan jadual
Kluster pemisah baca-tulis ketersediaan tinggi MySQL
PHP中文网2017-04-18 09:41:50
Terima kasih atas jemputan saya bukan master, dan saya rasa soalan yang ditanya terlalu besar dan sukar untuk dijawab.
Walau bagaimanapun, setakat yang saya tahu, temu duga teknikal secara amnya secara beransur-ansur, dan penemuduga menguji kedalaman sistem teknikal calon, jadi secara teori, semakin anda bercakap tentang sesuatu topik, semakin banyak wakil anda adalah calon yang lebih baik. Banyak masalah pemprosesan konkurensi tinggi dan teredar sebenarnya adalah isu empirikal, kerana situasi pemprosesan serentak tinggi bagi senario perniagaan yang berbeza dan jumlah data yang berbeza adalah berbeza sama sekali, dan tiada penyelesaian universal sepenuhnya .
Jadi semasa temu duga, adalah sangat penting untuk memahami senario perniagaan yang diterangkan oleh penemuduga Ini juga merupakan maklumat penting untuk menganalisis kesesakan prestasi Mengikut prinsip tong, mesti ada kesesakan pada titik penting tertentu.
Untuk memberikan contoh mudah, Semasa perniagaan berkembang, kluster pelayan yang disambungkan terus ke pangkalan data menghadapi kesesakan prestasi. Bagaimana ia harus diselesaikan?
Pada masa ini, anda mesti terlebih dahulu menganalisis di mana kesesakan prestasi terletak Pertama, pertimbangkan sama ada reka bentuk pangkalan data itu sendiri adalah munasabah, sama ada indeks memainkan peranan, menganalisis pelan pelaksanaan SQL dan sama ada pangkalan data boleh. berpecah secara mendatar atau menegak.
Ia juga perlu untuk menganalisis sama ada pangkalan data pemisahan baca-tulis yang diedarkan boleh digunakan, yang akan membawa kepada isu seperti cara melakukan penyegerakan data, pengedaran data, dsb.
Selepas lapisan pangkalan data dianalisis, ia juga boleh dianalisis pada lapisan aplikasi Secara amnya, caching digunakan untuk meningkatkan prestasi pertanyaan, yang melibatkan isu kadar hit cache, isu kemas kini cache, isu cincang berbilang nod cache, dsb.
Secara umum, anda perlu memahami senario perniagaan, dan kemudian cuba mencari penyelesaian kepada masalah tertentu. Sebagai contoh, adakah Sina Weibo menggunakan mod tolak atau mod tarik? Jika ia adalah mod tolak, adakah V besar dengan berpuluh juta peminat menyiarkan siaran Weibo kepada berpuluh juta orang? Jika ia adalah mod tarik, adakah terdapat sebarang masalah prestasi setiap kali apabila seseorang mengikuti terlalu ramai pengguna?
伊谢尔伦2017-04-18 09:41:50
Terdapat banyak jenis pengedaran Sebagai contoh, jika anda membahagikan projek anda kepada beberapa modul, setiap modul mempunyai jvm untuk menyelesaikan kerja keseluruhan melalui panggilan rpc Ini diedarkan banyak concurrencies. Atau jika anda tidak mempunyai begitu banyak memori untuk caching, anda boleh membina kelompok redis, yang juga diedarkan pangkalan data ke dalam jadual dan melaksanakan transaksi melalui Pengagihan JTA, serta penyegerakan log, pengimbangan beban, menambah HDFS untuk menyimpan sandaran data, menyimpan log, dan menambah eslaticsearch untuk menganalisis dan log carian semuanya boleh dibincangkan.
PHP中文网2017-04-18 09:41:50
Apabila seseorang bertanya soalan umum, jika penjawab ikut soalan umum, dia akan gagal... Digalakkan untuk menjawab secara logik.
Jika saya, saya akan melakukan dua perkara:
1 Cari projek yang telah saya lakukan sebelum ini, bincangkan kesesakan dengannya, dan kemudian memperkenalkan pengetahuan teori, dan akhirnya memberi penyelesaian. Pendekatan ini memudahkan anda bercakap tentang diri anda, dan yang terbaik adalah untuk mengadakan interaksi dengan penemuduga. Beri perhatian kepada soalan penemuduga semasa perbualan dan semak dengan jelas apa yang ditanya oleh penemuduga
2. Pendekatan kedua ialah mempamerkan kad terlebih dahulu dan mengeluarkan isu teragih yang lebih klasik, seperti beban trafik. Jaminan perniagaan. . . . Kemudian berikan senario perniagaan untuk masalah tersebut.