Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Catat perkara utama temu bual PHP pertengahan hingga senior semasa wabak

Catat perkara utama temu bual PHP pertengahan hingga senior semasa wabak

藏色散人
藏色散人ke hadapan
2021-08-09 09:35:338701semak imbas

Disebabkan oleh wabak itu, ia adalah temu bual video Barisan A yang termasuk seorang penyelia HR dan seorang pengurus produk Orang yang bertanggungjawab secara langsung untuk temu duga ini ialah Pengarah Teknikal A. Dua yang lain nampaknya merupakan ketua jabatan yang berbeza (B dan C) dalam kedudukan yang sama ( Nah, mereka semua 35).

Mari kita terus ke topik tanpa berlengah lagi. (Sesetengah orang ingin menggunakan titik bertindih untuk memisahkannya, tetapi kekunci kolon dan tab pada papan kekunci nampaknya rosak)

Pada mulanya, hr memperkenalkan ahli dan jawatan yang terlibat dalam temu duga, dan kemudian bertanya tentang soalannya. Pengurus produk itu bertanya Terangkan sebab-sebab Ben meletak jawatan dan isu yang dia ingin tahu.

Kemudian drama sebenar bermula.

Pengarah A: Memandangkan anda sangat mahir dalam MySQL, beritahu saya tentang tahap pengasingan MySQL. .

I: Tahap pengasingan urus niaga MySQL dari tertinggi ke tertinggi dibaca tanpa komitmen, baca komited, dibaca berulang dan bersiri Tahap pengasingan lalai MySQL boleh dibaca secara berulang mungkin menyebabkan Masalahnya adalah bacaan kotor , bacaan tidak boleh berulang dan bacaan hantu, dan kemudian operasi dan penyelesaian yang menyebabkan situasi ini dijelaskan masing-masing.

Pengarah A: Apakah strategi anda untuk mengubah suai tahap pengasingan dalam senario sebenar.

Saya: .... (Elips di sini bermaksud saya mengada-adakan perkara yang bukan-bukan. Sebenarnya, saya agak keliru, kerana saya hanya memproses berpuluh juta data trafik, tetapi ia tidak concurrency tinggi, jadi ia tidak melibatkan sektor pengasingan pengubahsuaian, atau kedalaman pemikiran tidak mencukupi)

Pengarah A: Apakah indeks innodb dan bagaimana ia dilaksanakan.

I: Indeks sendi biasa unik kunci utama, dengan pelaksanaan B-tree, B-tree dan cincangan.

Pengarah A: Apakah perbezaan antara pelaksanaan ini Apakah strategi yang anda gunakan untuk memilihnya semasa mereka bentuk indeks?

I: B-tree dan B-tree berbeza dalam data pada nod daun dan kedalaman pokok Untuk mendapatkan semula yang sama, B-tree memerlukan satu IO lebih daripada B-tree. Pilih algoritma indeks yang berbeza mengikut senario perniagaan sebenar Jika lebih banyak membaca dan kurang menulis, saya akan memilih B-tree (sebenarnya saya tidak tahu kerana saya terlupa)

Pengarah A: Klasifikasi dan fungsi MySQL. kunci , anda menggunakan senario dalam kerja sebenar.

Saya: (Saya agak gementar pada masa ini, kerana temuduga sebelum ini adalah dari cetek hingga mendalam)... Kemudian saya menyatakan secara ringkas pemahaman saya, tetapi sebenarnya jawapannya tidak memuaskan. Kerana B dan C juga menyelitkan soalan lain.

Pengarah B: Adakah anda biasa dengan pengedaran Bagaimana untuk melaksanakan kunci yang diedarkan Adakah anda pernah belajar tentang etcd?

Saya: Anda boleh menggunakan setnx redis digabungkan dengan masa tamat untuk melaksanakan ini, kerana saya telah melaksanakan ini dalam perniagaan saya sebelum ini, dll, tetapi saya tidak faham ini (saya tidak mempunyai konsep ini dalam fikiran saya), dan,, (terputus)

Pengarah C: Masa adalah terhad, mari teruskan dengan soalan lain dan lihat jika anda telah melakukan pengoptimuman PHP dan cara menggunakan opcahche.

Saya: (Setelah merenung sejenak), pengoptimuman penghuraian opcode.

Pengarah C: Di manakah opcode?

Saya: Saya tidak mempunyai kesan tentang ini, ( Saya benar-benar tidak mempunyai tanggapan tentang ini) Kerana berdasarkan senario perniagaan sebelum ini, saya telah membuat peningkatan kualitatif dalam projek dari bahagian hadapan, CDN, proksi terbalik pelayan, cache pangkalan data, dan pengoptimuman kod logik program, tetapi ia adalah satu-satunya perkara yang saya tidak mempunyai hubungan dengan opchache dan opcode , silap)

Pengarah C: Terangkan secara ringkas proses url, hanya fokus pada perkara utama

Pelayar saya memasukkan url dan menghuraikannya. ke IP, dan kemudian menghantar permintaan ke pelayan web Jika ia adalah nginx Ia akan dihantar ke PHP-FPM melalui cgi, dan kemudian tunggu skrip PHP untuk menghuraikan, memproses logik, dan bertindak balas kepada data.

Pengarah C: Apakah itu cgi dan untuk apa ia digunakan

I: cgi ialah protokol, iaitu protokol untuk bahasa seperti PHP untuk berkomunikasi dengan pelayan web.

Pengarah B: Apakah model seni bina PHP-FPM dan bagaimana anda telah mengoptimumkannya?

Saya: Ia adalah model seni bina master (utama)-pekerja Ia adalah proses kerja yang sebenarnya memproses permintaan dan mengitar semula proses kanak-kanak jika dioptimumkan sebelum ini. Saya akan menerangkan secara ringkas konfigurasi bilangan prosesnya: Oleh kerana mod statik yang dikonfigurasikan sebelum ini, bilangan lalai proses ialah 200. Kemudian, apabila terdapat konkurensi tertentu, saya harus menukarnya kepada mod konfigurasi "ketiga". dan konfigurasikan nombor yang ditentukan Terdapat nilai minimum dan maksimum untuk bilangan proses (nilai maksimum sebenarnya dilupakan di sini, saya hanya fikir mesti tiada had, selepas semua, sumber perkakasan adalah siling), dan kemudian meningkat secara dinamik. bilangan proses berdasarkan bilangan permintaan sebenar.

Pengarah B: Adakah terdapat pengoptimuman lain

Saya: (Saya diam seketika. Sebenarnya, saya membuat perubahan lain semasa semakan, tetapi saya benar-benar lupa tentangnya. Saya merasakan bahawa temu bual ini telah dipanjangkan ), saya melakukan pengoptimuman lain pada masa itu, tetapi saya tidak dapat mengingatinya.

Pengarah B: Beritahu saya tentang rabbitmq yang anda gunakan dan pemahaman anda tentangnya.

Saya: (Menghuraikan secara ringkas seni bina rabbitmq) dan senario dan perniagaan penggunaan saya.

Pengarah B: Beritahu saya tentang mod topik yang anda gunakan

Saya: (Saya menerangkan secara ringkas proses penggunaan topik, yang dianggap lulus).

Pengarah A: Mari kita bincangkan tentang redis sharding.

Saya: Sharding ialah proses membahagikan kunci kepada berbilang kejadian redis Ia menggunakan memori dan kuasa pemprosesan CPU berbilang komputer untuk menambah baik,,,,

Pengarah A : Cara melaksanakan. senarai ranking

Saya: Anda boleh menggunakan set redis yang ditempah, kerana ia mempunyai skor,,,

Pengarah A: Gunakan fungsi itu untuk mendapatkan nilai

Saya: (Saya ingat, tetapi saya benar-benar tidak ingat) Saya lupa ini, apakah jenis fungsi ahli.

Pengarah A: Mari kita bincangkan tentang AOP, adakah anda pernah menggunakannya

Saya: Pengaturcaraan aspek AOP ialah menggunakan proksi dinamik dan teknologi lain untuk mencapai penyelenggaraan modul berfungsi yang bersatu, sedikit seperti fasad laravel (saya tidak tahu) Pada penghujung hari, jika anda mahu berada di dalam, anda akan gagal).

Pengarah A: Mari kita bincangkan tentang ciri-ciri hyperf

Saya: Berdasarkan swoole, rangka kerja coroutine berprestasi tinggi dan sangat fleksibel pemalam, yang diisi dengan suntikan ketergantungan, mod aop , dan anotasi Mod, mod acara,,,

Pengarah A: Mari kita bincangkan tentang kumpulan coroutine dan pengurusan negeri coroutine

Saya: (Saya sebenarnya tidak menjawabnya di sini. Sebenarnya, setelah memikirkannya, saya dapat sebahagian daripada jawapannya, sekurang-kurangnya pengurusan negeri coroutine boleh dijawab)

Pengarah A: Jika anda tahu pergi, soalan ini sangat mudah

Pengarah A: Jom bercakap tentang laravel

Saya : (Ini adalah titik kuat saya, jadi saya tidak akan menerangkannya secara ringkas satu per satu)

Pengarah B: Mari kita bercakap tentang Linux dan skrip shell

Saya: (Pengenalan ringkas kepada Linux dan arahan biasa dan vi), ungkapan cangkerang serta takrifan dan penggunaan berubah adalah berbeza daripada bahasa PHP.

Pengarah C: Mari lihat anda menggunakan pengurangan peta untuk pemprosesan kelompok data, beritahu kami mengenainya

Saya menggunakan redcue peta monogo untuk pemprosesan data,,, (terganggu)

Pengarah C: Saya terfikir untuk menggunakan hadoop's map reduce

Pengarah A: Beritahu saya tentang rancangan anda untuk masa depan

Saya: …

Di atas adalah masa saya Temu bual video telah dipulihkan 100% Kemudian, apabila saya memikirkannya dengan teliti, saya mendapati bahawa banyak daripada mereka mempunyai penyelesaian, tetapi mengapa kesan temu bual ini sangat tidak konsisten. Pewawancara yang memberi saya perkara "mendalam", yang mengganggu rentak saya.

Cadangan berkaitan: "Tutorial Video PHP" " Ringkasan Soalan Temuduga PHP (Koleksi) "

Atas ialah kandungan terperinci Catat perkara utama temu bual PHP pertengahan hingga senior semasa wabak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam