Naiknya Helidon

Halo, Habr! Saya sajikan kepada Anda terjemahan artikel oleh Dmitry Kornilov Helidon Takes Flight . Saya bukan karyawan Oracle, tetapi saya menemukan artikel menarik tentang jenis kerangka kerja baru yang semakin populer. Jadi ayo pergi ...

Hari ini adalah hari yang baik. Hari ini kami memperkenalkan kerangka kerja MicroProfile baru Java untuk mengimplementasikan layanan mikro. Proyek Helidon adalah kerangka Java baru Oracle .

Helidon, dari terjemahan Yunani, adalah burung layang-layang, sejenis burung, menurut Wikipedia, dengan tubuh ramping ramping dan sayap lancip, yang memberikan kemampuan manuver yang hebat dan ... penerbangan yang sangat efisien. Ideal untuk terbang di awan.

Pendahuluan


Beberapa waktu lalu, pekerjaan dimulai pada apa proyek Helidon sekarang. Ketika kami memasuki pasar solusi cloud dan arsitektur microservice menjadi sangat populer untuk menciptakan layanan cloud, kami menyadari bahwa keahlian pengembangan juga harus diperluas. Dimungkinkan untuk membuat layanan microser menggunakan Java EE, tetapi lebih baik untuk memiliki infrastruktur yang dirancang dari awal untuk membuat layanan microser. Kami ingin membuat kumpulan perpustakaan yang ringan yang tidak memerlukan server aplikasi dan cloud untuk aplikasi Java SE. Pustaka-pustaka ini dapat digunakan secara terpisah satu sama lain, tetapi jika digunakan bersama-sama, pustaka-pustaka itu akan menyediakan pengembang dengan kerangka kerja layanan-mikro: konfigurasi awal, subsistem keamanan, dan server web.

Berbagai upaya telah dilakukan untuk membuat sistem layanan-mikro standar dari MicroProfile. MicroProfile cukup populer di komunitas Java EE / Jakarta EE dan memberikan pengalaman pengembangan yang mirip dengan Java EE. Kami menyukai gagasan itu dan kami mendukung inisiatif ini. Helidon mengimplementasikan MicroProfile 1.1. Kami akan terus bekerja pada pengenalan versi baru MicroProfile dan berniat untuk mempertahankan standar EE Jakarta yang relevan di bidang ini, seperti yang telah dijelaskan.

Helidon dibuat di Oracle, jadi jangan heran bahwa akan ada integrasi dengan Oracle Cloud. Mereka tidak termasuk dalam versi awal, tetapi akan ditambahkan nanti. Helidon sudah digunakan oleh banyak proyek internal Oracle dan integrasi ini menyederhanakan kehidupan pengembang kami. Kami percaya bahwa ini akan menyederhanakan hidup Anda jika Anda menggunakan Oracle Cloud. Jika tidak, maka integrasi ini bersifat opsional.

Klasifikasi



Kerangka kerja penulisan microservice Java terbagi dalam beberapa kategori, dari kecil ke besar:

  • Microframeworks - sederhana, lucu, dengan serangkaian fitur yang sengaja terbatas, misalnya: Spark, Javalin, Micronaut, dan lainnya.
  • MicroProfile - Lebih akrab dengan pengembang Java EE, tetapi sedikit "lebih sulit." Beberapa dari mereka dikembangkan di atas server aplikasi Java EE, misalnya: Thorntail (sebelumnya Wildfly Swarm), OpenLiberty, Payara.
  • Full Stack - Full -featured, seperti Spring Boot.

Helidon hadir dalam dua rasa dan termasuk dalam dua kategori: Microframeworks dan MicroProfile.

  • Helidon SE adalah mikro sederhana, fungsional, dan ringan yang dirancang dengan gaya reaktif modern. Tidak ada "keajaiban" di dalamnya. Tidak diperlukan lingkungan khusus, JDK digunakan seperti itu.
  • Helidon MP adalah implementasi Eclipse Microprofile yang menyediakan gaya pengembangan yang akrab bagi pengembang Java EE / Jakarta EE.

Arsitektur


Arsitektur Helidon ditunjukkan di bawah ini.


Komponen Helidon SE berwarna hijau, termasuk Config, Security, dan RxServer.
Komponen Java EE / Jakarta EE berwarna abu-abu, termasuk JSON-P, JAX-RS / Jersey dan CDI. Mereka membutuhkan implementasi MicroProfile. Helidon MP adalah lapisan di atas komponen Helidon SE. Komponen tambahan layanan Oracle Cloud berwarna merah dan dapat digunakan oleh komponen Helidon SE dan Helidon MP.

Contoh Penggunaan


Instalasi


Cara termudah untuk memulai dengan Helidon adalah memiliki proyek Maven di Java 8 (atau lebih tinggi) di mana Anda menentukan Helidon bom-pom dan ketergantungan minimal:

<dependencyManagement> <dependencies> <dependency> <groupId>io.helidon</groupId> <artifactId>helidon-bom</artifactId> <version>${helidon-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ..... <dependency> <groupId>io.helidon.webserver</groupId> <artifactId>helidon-webserver-netty</artifactId> </dependency> 

Helidon se


Helidon SE adalah dasar untuk layanan mikro reaktif ringan. Contoh "Halo dunia":

 import io.helidon.webserver.Routing; import io.helidon.webserver.WebServer; ..... Routing routing = Routing.builder() .get("/hello", (req, res) -> res.send("Hello World")) .build(); WebServer.create(routing) .start(); 

Dalam hal ini, kami memulai server web pada port (bebas) sewenang-wenang dan membuka akses melalui / halo.

Menambahkan Metrik


Sekarang kami menambahkan implementasi antarmuka MicroProfile Metrics untuk Helidon SE (tanpa dukungan DI, karena ini tidak termasuk dalam SE). Ini akan membutuhkan dependensi berikut:

 <dependency> <groupId>io.helidon.metrics</groupId> <artifactId>helidon-metrics-se</artifactId> </dependency> 

Implementasi:

 //    MetricsSupport metricsSupport = MetricsSupport.create(); //   MetricRegistry registry = RegistryFactory .getRegistryFactory() .get() .getRegistry(MetricRegistry.Type.APPLICATION); //   Counter helloCounter = registry.counter("helloCounter"); Routing routing = Routing.builder() //    web- .register(metricsSupport) .get("/hello", (req, res) -> { //   helloCounter.inc(); res.send("Hello World"); }) .build(); WebServer.create(routing) .start(); 

Sekarang kami memiliki titik akhir yang tersedia:

  • / metrik - semua metrik dasar
  • / metrik / aplikasi / helloCounter - metrik yang dibuat oleh aplikasi "hello world"

Helidon mp


Helidon MP adalah implementasi Eclipse Microprofile dan runtime untuk layanan microser.
Untuk membuat aplikasi "Hello world" yang menggunakan metrik panggilan, Anda harus membuat kelas sumber daya JAX-RS untuk menangani permintaan:

 @Path("hello") @RequestScoped //   CDI public class HelloWorld { @GET @Metered public String hello() { return "Hello World"; } } 

dan kemudian mulai server dengan sumber ini:

 Server.builder() .addResourceClass(HelloWorld.class) .build() .start(); 

Anda juga perlu membuat beans.xml di direktori src / main / resources / META-INF untuk mengaktifkan CDI:

 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd" bean-discovery-mode="annotated"> </beans> 

Dengan konfigurasi ini, server web akan diluncurkan pada port default (7001) dan akses terbuka via / halo. . Titik akhir berikut akan tersedia:

  • localhost : 7001 / halo - aplikasi halo dunia itu sendiri
  • localhost : 7001 / metrik - Metrik MicroProfile
  • localhost : 7001 / metrik / aplikasi / com.oracle.tlanger.HelloWorld.hello - metrik aplikasi "hello world" kami
  • localhost : 7001 / kesehatan - Metrik status MicroProfile

Paket


Kami memiliki banyak paket yang cocok untuk artikel terpisah.

Tujuan jangka pendek kami adalah untuk membahas dan memperkenalkan Helidon di komunitas Jawa. Kami berencana untuk berbicara tentang Helidon di beberapa konferensi. Empat laporan Helidon telah dijadwalkan untuk Oracle Code One 2018. Kami juga telah mengajukan aplikasi untuk EclipseCon Europe 2018 dan akan berpartisipasi dalam Jakarta EE / MicroProfile Community Day di Jakarta. Materi pelatihan seperti video, studi kasus, artikel, dll. sudah dalam pengembangan dan akan segera diterbitkan.

Sedangkan untuk sisi teknis, kami sedang mengerjakan implementasi MicroProfile versi berikutnya, dukungan GraalVM.

Kami sedang mengerjakan hal-hal keren lainnya, tetapi sejauh ini kami tidak dapat mengungkapkan semua kartu. Tetap bersama kami, kami akan mengumumkan fitur-fitur baru segera setelah mereka siap.

Sumber



Anda mungkin tertarik dengan ini:


  • Awalnya, nama itu adalah J4C (Java for Cloud)
  • Helidon sedang dikembangkan oleh tim yang didistribusikan dari Praha dan Amerika Serikat.
  • Helidon sudah digunakan oleh lebih dari sepuluh proyek di Oracle
  • Beberapa komponen Helidon masih dalam pengembangan dan akan tersedia untuk umum setelah beberapa waktu.

Source: https://habr.com/ru/post/id424607/


All Articles