Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menulis aplikasi terdorong peristiwa berskala dalam Java

WBOY
Lepaskan: 2023-06-27 12:38:30
asal
1080 orang telah melayarinya

Dengan perkembangan era digital, pengkomputeran awan dan teknologi data besar digunakan secara meluas, dan menjadi semakin penting untuk membangunkan perisian yang dapat memenuhi prestasi tinggi dan berskala. Artikel ini menerangkan cara menulis aplikasi terdorong peristiwa berskala dalam Java untuk memenuhi keperluan ini.

Aplikasi dipacu peristiwa merujuk kepada mencetuskan satu siri operasi selepas peristiwa yang telah ditetapkan berlaku dalam program Kaedah ini sesuai untuk mengendalikan permintaan serentak daripada berbilang pelanggan, seperti pelayan rangkaian atau sistem pemesejan. Skalabiliti merujuk kepada keupayaan aplikasi untuk berjalan dengan cekap dalam persekitaran yang berbeza, seperti CPU berbilang teras, sistem teragih, dsb.

Java ialah bahasa pengaturcaraan berorientasikan objek yang pada asalnya dibangunkan oleh Sun Microsystems dan kini diselenggara oleh Oracle Corporation. Bahasa Java mempunyai ciri-ciri platform silang, pengurusan memori automatik, dan perpustakaan kelas kaya Ia digunakan secara meluas dalam senario seperti pembangunan web, pembangunan aplikasi peranti mudah alih dan pembangunan perisian peringkat perusahaan. Dalam artikel ini, kami akan menulis pelayan web dipacu peristiwa di Java.

  1. Corak Reka Bentuk

Sebelum menulis aplikasi terdorong peristiwa berskala, kita perlu mempelajari beberapa corak reka bentuk asas. Corak reka bentuk digunakan secara meluas dan cara yang terbukti untuk mengatur kod. Apabila menggunakan corak reka bentuk, kita boleh mengelakkan beberapa ralat pengaturcaraan yang menyusahkan dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Dalam aplikasi dipacu peristiwa, corak reka bentuk yang biasa kami gunakan ialah corak pemerhati dan corak rantaian tanggungjawab. Corak pemerhati merujuk kepada hubungan pergantungan satu-ke-banyak antara objek Apabila keadaan objek berubah, semua objek yang bergantung padanya akan dimaklumkan. Corak rantaian tanggungjawab merujuk kepada menghantar permintaan dari satu objek ke objek seterusnya sehingga objek dapat mengendalikan permintaan tersebut.

  1. Java NIO

Sebelum Java 1.4, pengaturcaraan rangkaian Java menggunakan model I/O penyekat tradisional. Kelemahan model ini ialah apabila mengendalikan berbilang sambungan, jika satu sambungan diproses secara perlahan, keseluruhan program akan disekat. Untuk menyelesaikan masalah ini, Java memperkenalkan pakej NIO (I/O Baharu).

Pakej NIO menyediakan antara muka I/O tidak menyekat dipacu peristiwa yang boleh mengendalikan berbilang sambungan pada masa yang sama dan memberitahu program apabila sambungan mempunyai data yang boleh dibaca atau ditulis.

Kelas paling penting dalam pakej NIO ialah Selector dan Channel. Pemilih ialah pemilih acara, digunakan untuk mendaftarkan acara IO, dan kemudian mengundi acara yang didaftarkan secara berterusan Apabila acara berlaku, Pemilih akan memberitahu program untuk memprosesnya. Saluran ialah objek terkapsul sambungan rangkaian, yang boleh melakukan operasi baca dan tulis tanpa menyekat.

  1. Kolam sambungan

Kolam sambungan merujuk kepada pra-mewujudkan bilangan objek sambungan tertentu apabila program bermula Apabila sambungan perlu digunakan, sambungan dikeluarkan dari kolam untuk operasi, dan sambungan diletakkan kembali ke dalam kolam selepas operasi selesai. Pendekatan ini mengelakkan penciptaan dan pemusnahan objek sambungan yang kerap.

Pengumpulan sambungan adalah penting apabila mereka bentuk aplikasi terdorong peristiwa berskala. Kolam sambungan bukan sahaja dapat meningkatkan prestasi program, tetapi juga mengelakkan pembaziran sumber dan kesesakan sistem.

Terdapat banyak perpustakaan kolam sambungan matang di Java, seperti Apache Commons DBCP dan HikariCP, dsb. Apabila menggunakan kumpulan sambungan, anda perlu memberi perhatian kepada parameter konfigurasi, seperti bilangan maksimum sambungan, bilangan sambungan minimum, tamat masa sambungan, dsb.

  1. Multi-threading

Multi-threading bermaksud terdapat berbilang thread dilaksanakan serentak dalam program, dan setiap thread mempunyai konteks dan status pelaksanaannya sendiri. Di Java, thread dilaksanakan oleh kelas Threads boleh dibuat dengan mewarisi kelas Thread atau melaksanakan antara muka Runnable.

Dalam aplikasi terdorong peristiwa berskala, pelbagai benang adalah penting. Pustaka NIO Java menggunakan multi-threading untuk meningkatkan prestasi. Satu utas boleh digunakan sebagai pengendali acara, bertanggungjawab untuk memproses permintaan pelanggan yang telah berjaya disambungkan dan satu lagi utas boleh digunakan sebagai penyambung, bertanggungjawab untuk memantau sambungan pelanggan baharu.

Apabila menggunakan berbilang benang, anda perlu memberi perhatian kepada keselamatan benang, seperti penyegerakan sumber yang dikongsi dan penggunaan kunci.

  1. Ringkasan

Artikel ini memperkenalkan cara menulis aplikasi terdorong peristiwa berskala menggunakan Java. Sebelum menulis atur cara, anda perlu memahami konsep asas seperti corak pemerhati, corak rantaian tanggungjawab, Java NIO, penyatuan sambungan dan multi-threading. Dalam pelaksanaan program, anda perlu memberi perhatian kepada isu seperti prestasi, keselamatan benang dan kebolehbacaan.

Melalui pengenalan artikel ini, pembaca boleh memahami cara menggunakan Java untuk menulis aplikasi web berprestasi tinggi, berskala, dan mempelajari beberapa corak dan teknik reka bentuk praktikal.

Atas ialah kandungan terperinci Bagaimana untuk menulis aplikasi terdorong peristiwa berskala dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan