Kerangka kerja layanan mikro yang cepat, ringan, dan berbasis cloud.
Tumpukan Luapan | Grup Google | Obrolan Gitter | Subreddit | Saluran Youtube | Dokumentasi | Panduan Kontribusi |
Ringan berarti ringan, secepat kilat, dan menjelaskan cara memprogram dengan Java SE modern untuk penerapan cloud-native.
Saya telah bekerja pada platform Java EE sejak awal tahun 2000 dan mengalami masalah kinerja dan produktivitas. Pada tahun 2014, saya menyadari bahwa industri TI beralih dari Monolitik ke Layanan Mikro dan dari pusat data lokal ke cloud publik.
Untuk mengurangi biaya produksi aplikasi saya, saya perlu menemukan platform ringan yang memiliki jejak memori kecil, throughput tinggi, dan latensi rendah di Java. Java EE dan Spring/Spring Boot terlalu berat untuk dipertimbangkan. Platform Java ringan lainnya semuanya memiliki masalah berbeda dalam pemisahan antara logika bisnis dan masalah teknis lintas sektoral. Selain itu, mereka bukan cloud-native atau dirancang untuk container/cloud.
Tanpa menemukan sesuatu yang cocok, saya mulai membangun platform sumber terbuka light-4j di atas inti HTTP Undertow dengan mengikuti prinsip-prinsipnya. Karena pendekatan saya sangat radikal, dan bertentangan dengan produk dari perusahaan besar, saya terus-menerus diserang oleh beberapa entitas baik online maupun offline. Namun, saya sangat yakin bahwa pendekatan saya adalah arah masa depan dan saya mengerahkan seluruh upaya saya untuk melanjutkan pembangunan. Saat ini, banyak perusahaan yang menggunakan light-4j dalam produksi dengan tanggapan yang sangat positif. Hal ini semakin mendorong saya untuk mengabdikan diri pada kerangka kerja ini dan memperluas platform untuk membangun ekosistem.
Bagi pengguna yang mendapat manfaat dari platform ini, Anda dapat menjadi sponsor bagi saya sehingga saya dapat mengerahkan seluruh upaya saya dalam proyek sumber terbuka.
Ini 44 kali lebih cepat daripada platform layanan mikro terpopuler Spring Boot yang tertanam Tomcat dan hanya menggunakan 1/5 memori. Berikut adalah hasil benchmark dibandingkan dengan Spring Boot dan framework layanan mikro lainnya. Berikut perbandingan pihak ketiga dengan framework Web lainnya.
Rancang spesifikasi OpenAPI dan hasilkan layanan darinya. Spesifikasi ini juga merupakan bagian dari kerangka kerja untuk mendorong verifikasi keamanan dan validasi permintaan saat runtime.
Rintisan pengujian Unit/End-to-End dibuat untuk memungkinkan pendekatan berbasis pengujian untuk produk berkualitas.
Melakukan debug dalam IDE seperti aplikasi mandiri untuk produktivitas pengembang yang lebih baik.
File pendukung Dockerfile dan DevOps dibuat untuk mendukung dockerisasi dan integrasi berkelanjutan ke produksi.
Semua kerangka kerja sumber terbuka dibuat di Java dan kami sedang mengerjakan kerangka kerja Nodejs secara internal. Di masa depan, kami mungkin juga menyediakan kerangka kerja Golang dan semuanya berbagi ekosistem dan pasar yang sama.
Server OAuth2 untuk keamanan dan Portal untuk pemantauan dan manajemen produksi. Portal ini juga merupakan pasar untuk menghubungkan klien dan layanan bersama-sama.
Ada dua cara untuk memulai proyek Anda:
Anda dapat menggunakan light-codegen untuk menghasilkan proyek yang berfungsi. Saat ini, mendukung light-rest-4j, light-graphql-4j, light-hybrid-server-4j dan light-hybrid-service-4j. generator kode peristiwa ringan akan hadir.
Proyek kodegen ringan README.md menjelaskan empat cara menggunakan generator beserta contohnya.
Cara lain untuk memulai proyek Anda adalah dengan menyalin dari light-example-4j.
Anda dapat menemukan deskripsi contoh-contoh ini
Juga, ada beberapa tutorial
Untuk menjalankan/debug dari IDE, Anda perlu mengkonfigurasi aplikasi Java dengan kelas utama "com.networknt.server.Server" dan direktori kerja adalah folder proyek Anda. Tidak ada wadah dan Anda hanya mengerjakan aplikasi Java yang berdiri sendiri.
buat aplikasi Java dengan kelas utama com.networknt.server.Server dan direktori kerja adalah folder root proyek Anda. Anda dapat men-debug server Anda seperti aplikasi POJO.
mvn eksekutif: eksekutif
java -jar target/demo-0.1.0.jar
Anda dapat menggunakan Ctrl+C untuk mematikan server tetapi untuk produksi gunakan perintah berikut
kill -s TERM <pid>
Server memiliki kait mematikan dan perintah di atas memungkinkannya untuk membersihkan. Misalnya, menyelesaikan permintaan dalam penerbangan dan menutup koneksi database, dll. Jika registri dan penemuan layanan digunakan, maka server akan mengirimkan acara penutupan ke registri layanan dan terus memproses permintaan selama 30 detik hingga semua klien menyegarkan cache lokalnya sebelum mematikan .
Light-4j dan semua kerangka light-*-4j tersedia di bawah lisensi Apache 2.0. Lihat file LISENSI untuk info lebih lanjut.