Redant adalah wadah web ringan berbasis Netty
ciri:
Redant adalah wadah web yang berbasis di Netty, mirip dengan Tomcat dan WebLogic.
Anda hanya perlu memulai server dan kelas implementasi default adalah Nettyhttpserver untuk dengan cepat memulai wadah web, seperti yang ditunjukkan di bawah ini:
public final class ServerBootstrap {
public static void main ( String [] args ) {
Server nettyServer = new NettyHttpServer ();
// 各种初始化工作
nettyServer . preStart ();
// 启动服务器
nettyServer . start ();
}
}Sejauh ini, saya telah menggambarkan semua mode satu-simpul. Jika kinerja satu-simpul tidak dapat dipenuhi pada satu hari, maka saya perlu menggunakan cluster, jadi saya juga telah menerapkan mode cluster.
Mode cluster terdiri dari node master dan beberapa node budak. Setelah menerima permintaan, Node Master meneruskan permintaan ke Node Slave untuk diproses. Node slave mengembalikan hasil yang diproses ke node master, dan node master menanggapi hasil permintaan.
Untuk mengimplementasikan model cluster, kita perlu memiliki fungsi pendaftaran dan penemuan layanan. Saat ini, kami menggunakan ZK untuk melakukan pendaftaran dan penemuan layanan.
Karena node utama perlu meneruskan permintaan ke node slave, node master perlu mengetahui node budak mana yang ada saat ini. Saya menggunakan Zookeeper untuk mengimplementasikan pendaftaran dan penemuan layanan.
Jika Anda tidak memiliki server ZK yang tersedia, Anda dapat memulai server Zookeeper dengan menjalankan metode utama berikut:
public final class ZkBootstrap {
private static final Logger LOGGER = LoggerFactory . getLogger ( ZkBootstrap . class );
public static void main ( String [] args ) {
try {
ZkServer zkServer = new ZkServer ();
zkServer . startStandalone ( ZkConfig . DEFAULT );
} catch ( Exception e ){
LOGGER . error ( "ZkBootstrap start failed,cause:" , e );
System . exit ( 1 );
}
}
}Dengan cara ini Anda dapat menggunakan ZK ini saat memulai master dan slave node nanti. Tapi ini tidak perlu. Jika Anda sudah memiliki server ZK yang sedang berjalan, Anda dapat menggunakannya secara langsung saat memulai node master dan slave, dengan menentukan alamat ZK di parameter metode utama.
Cukup jalankan kode berikut untuk memulai master node:
public class MasterServerBootstrap {
public static void main ( String [] args ) {
String zkAddress = ZkServer . getZkAddressArgs ( args , ZkConfig . DEFAULT );
// 启动MasterServer
Server masterServer = new MasterServer ( zkAddress );
masterServer . preStart ();
masterServer . start ();
}
}Jika alamat ZK ditentukan dalam parameter metode utama, penemuan layanan akan dilakukan melalui alamat ini, jika tidak, alamat ZK default akan digunakan.
Cukup jalankan kode berikut untuk memulai node budak:
public class SlaveServerBootstrap {
public static void main ( String [] args ) {
String zkAddress = ZkServer . getZkAddressArgs ( args , ZkConfig . DEFAULT );
Node node = Node . getNodeWithArgs ( args );
// 启动SlaveServer
Server slaveServer = new SlaveServer ( zkAddress , node );
slaveServer . preStart ();
slaveServer . start ();
}
}Jika alamat ZK ditentukan dalam parameter metode utama, pendaftaran layanan akan dilakukan melalui alamat ini, jika tidak, alamat ZK default akan digunakan.
Anda dapat mencobanya dengan menjalankan contoh yang disediakan dalam modul redant-example, yang memiliki dua pengontrol yang dibangun ke dalam modul contoh.
Setelah memulai, Anda dapat mengunjungi http://127.0.0.1:8888 di browser Anda untuk melihat efek spesifik (port default dapat dimodifikasi dalam redant.properties)
Jika Anda melihat pesan seperti ini: "Selamat datang di Redant!", Itu berarti Anda telah memulai dengan sukses.
Dalam modul redant-example, rute default berikut ini dibangun di:
| Tipe metode | Url | Jenis respons |
|---|---|---|
| MENDAPATKAN | / | Html |
| * | * | Html |
| MENDAPATKAN | /Pengguna/Hitungan | Json |
| MENDAPATKAN | /Pengguna/Daftar | Json |
| MENDAPATKAN | /Pengguna/Info | Json |
Seperti Spring, Anda dapat mengelola semua objek melalui anotasi @Bean dan secara otomatis menyuntikkannya melalui @Autowired.
Tips: Untuk informasi lebih lanjut, silakan periksa Wiki: Bean
Seperti Spring, Anda dapat menyesuaikan pengontrol melalui @Controller.
@Mapping anotasi digunakan pada level metode, @controller + @mapping hanya mendefinisikan permintaan HTTP.
Anotasi @param digunakan pada parameter metode ini. Anotasi ini memungkinkan Anda untuk secara otomatis mengubah tipe dasar menjadi objek POJO.
Tips: Untuk informasi lebih lanjut, silakan periksa wiki: router
Manajer cookie dapat mengelola cookie yang ditentukan pengguna.
Kiat: Untuk informasi lebih lanjut, silakan periksa wiki: cookie
wh_all4you#hotmail.com
