introduction
Die XNUMX Martii, RedHat (mox IBM)
Propositum est ut Java principale suggestum Kubernetes instruere et applicationem evolutionis inservire possit, ut tincidunt una cum accessu ad evolutionem tam reactiva quam imperativi styli praebeat.
Si intueri
Lorem Ipsum Lorem applicationis celeritatem memoriae humilis consummatio promittitur. Hic est notitia ex scriptor website elit:
Tempus ab initio ad primam responsionem (s):
configuratione
OTIUM
REQUIES+JPA
Quarkus+GraalVM
0.014
0.055
Quarkus+OpenJDK
0.75
2.5
Traditional Cloud Accuratissima Totius Stack *
4.3
9.5
Memoria consummationis (Mb);
configuratione
OTIUM
REQUIES+JPA
Quarkus+GraalVM
13
35
Quarkus+OpenJDK
74
130
Traditional Cloud Accuratissima Totius Stack *
140
218
Gravis, annon?
*Aliquas informationes de hoc acervo technologiarum non inveni, assumere possumus hoc genus aliquod veris Booz cum ornamento corporis addito..
Orbis Terrarum salve!
Simplicissimum applicatione scriptum in Quarkus hoc spectare videtur:
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "hello";
}
}
Proprie unum genus est et hoc satis est! Potes currere applicationem Maven in evolutionis modo utendi:
mvn compile quarkus:dev
β¦
$ curl http://localhost:8080/hello
hello
Distinctio a iusto application est quod class applicationem nulla! Quarkus reload calidam sustinet, ut applicationem tuam sine restarting illum mutare potes, progressionem etiam citius faciens.
Quid suus 'postero? Addere potes officium moderatoris utens annotatione
@ApplicationScoped
public class GreetingService {
public String greeting(String name) {
return "Hello " + name + "!";
}
}
Controller:
@Path("/hello")
public class GreetingResource {
@Inject
GreetingService service;
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/{name}")
public String greeting(@PathParam("name") String name) {
return service.greeting(name);
}
}
$ curl http://localhost:8080/hello/developer
Hello developer!
Nota quod Quarkus ex notis compagibus - CDI et JAX-RS annotationibus utitur. Nihil opus est ut aliquid novi discas, si prius cum CDI et JAX-RS functus es, utique.
Operantes cum database
Hibernate et vexillum JPA annotationes pro entia adhibentur. Ut cum reliquis moderatoris, minimum codicis scribere debes. Satis est indicare clientelas in fasciculo conventus, annotationes addere @Entity
et configurare datasource in application.properties.
Omnis. Nulla sessionFactory, persistence.xml vel alia documenta muneris. Non opus est solum codicem scribere. Tamen, si opus est, perseverantiam creare potes.xml fasciculum et tabulatum ORM subtilius configurare.
Quarkus subsidia cautionum entium, collectiones pro una ad multas relationes et interrogationes. Primo aspectu multum spectat, sed est locorum caching, uius Kubernetes node. Illae. Cellae diversorum nodi inter se non conformantur. Spero hoc tempus est.
Asynchronous code supplicium
Ut supra dictum est, Quarkus etiam stilum programmandi reactivum sustinet. Codex praecedentis schedula alia forma scriptus est.
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/{name}")
public CompletionStage<String> greeting(@PathParam("name") String name) {
return CompletableFuture.supplyAsync(() -> {
return "Hello " + name + "!";
});
}
}
Codex Asynchronous transferri potest ad usuni, idem erit.
temptationis
Probat ad applicationes Quarkus scribi possunt in JUnit4 vel JUnit5. Infra est exemplum testi pro fine, utens Restassured scriptum est, sed alia compages adhiberi potest:
@QuarkusTest
public class GreetingResourceTest {
@Test
public void testGreetingEndpoint() {
String uuid = UUID.randomUUID().toString();
given()
.pathParam("name", uuid)
.when().get("/hello/{name}")
.then()
.statusCode(200)
.body(is("Hello " + uuid + "!"));
}
}
The @QuarkusTest annotationem docet te currere applicatione ante currit probat. Reliquum est codicem tincidunt omnibus nota.
Suggestum specialium applicationis
Cum Quarkus arcte cum GraalVM insertus sit, generare sane potest codicem specialium suggestum. Ad hoc faciendum, debes GraalVM installare et ambitum variabilem GRAALVM_HOME denota. Praeterea
mvn package -Pnative
Interestingly applicatio generatae probetur. Atque hoc interest quod exsecutio codicis indigenae a executione in JVM differre potest. The @SubstrateTest annotation runs platform-specifica application code. Reusing codicem testium exsistens uti hereditatis usu fieri potest, ex quo factum est, signum ad applicationem catastaeum-dependens probandi hoc modo spectabit:
@SubstrateTest
public class GreetingResourceIT extends GreetingResourceTest {
}
Generata imago in Docker fasciculari potest et in Kubernetes vel OpenShift currere, singillatim descripta
instrumenta
Artus Quarkus cum Maven et Gradle adhiberi potest. Maven plene sustentatur, Gradle dissimilis. Infeliciter, in momento Gradle inane consilium generans non sustinet; est melius informationes in website
expansion
Quarkus est ambitus extensibilis. Currently est ordo
conclusio,
Opinor, Quarkus satis congruit cum trends temporis. Progressio Codicis Backend facilior et facilior fit, et haec compages amplius simplificat et accelerat servitium evolutionis, additis indigenis subsidiis Docker et Kubernetes. Ingens plus est constructum-in subsidiis ad GraalVM et generationem imaginum suggestorum dependens, quae officia re cito incipere permittit et modicum spatium memoriae capiat. Et hoc est magni momenti in nostro tempore massae passionis pro microserviis et architecturae servientibus.
Official site -
Source: www.habr.com