domingo, 14 de octubre de 2018

Helidon un framework para microservicios



Oracle ha introducido un nuevo framework de código abierto, Project Helidon, una colección de bibliotecas Java diseñadas para crear aplicaciones basadas en microservicios.

Originalmente llamado J4C (Java para la nube), Helidon fue diseñado para ser simple y rápido, y se compone de dos versiones: Helidon SE y Helidon MP. Helidon SE presenta tres API básicas para crear un microservicio (un servidor web, configuración y seguridad) para crear aplicaciones basadas en microservicios. No se requiere un servidor de aplicaciones. Helidon MP admite la especificación MicroProfile 1.1 para crear aplicaciones basadas en microservicios.

Inspirado por NodeJS y otros frameworks de Java, el servidor web de Helidon es una API asíncrona y reactiva que se ejecuta sobre Netty. La interfaz del servidor web incluye soporte para configuración, enrutamiento, manejo de errores y creación de métricas.

Vamos un ejemplo:

// starts the server on a random available port
public void startWebServerUsingRandomPort() throws Exception {
    WebServer webServer = WebServer
           .create(Routing.builder()
                   .any((req,res) -> res.send("It works!" + "\n"))
                   .build())
           .start()
           .toCompletableFuture()
           .get(10,TimeUnit.SECONDS);
    System.out.println("Server started at: http://localhost:" + webServer.port() + "\n");
    webServer.shutdown().toCompletableFuture();
    }

Config, carga y procesa las propiedades de configuración en formato clave/valor. De forma predeterminada, las propiedades de configuración se leerán desde un archivo application.properties o application.yaml definido ubicado en el directorio /src/main/resources.

// application.yaml
server:
 port: 8080
 host: 0.0.0.0

// starts the server on a port defined in application.yaml
public void startWebServerUsingDefinedPort() throws Exception {
    Config config = Config.create();
    ServerConfiguration serverConfig = ServerConfiguration.fromConfig(config.get("server"));
    WebServer webServer = WebServer
           .create(serverConfig,Routing.builder()
                   .any((req,res) -> res.send("It works!" + "\n"))
                   .build())
           .start()
           .toCompletableFuture()
           .get(10,TimeUnit.SECONDS);
    System.out.println("Server started at: http://localhost:" + webServer.port() + "\n");
    webServer.shutdown().toCompletableFuture();
    }

La verdad es que esta muy bueno y le da un aire nuevo a Java

Dejo link:
https://helidon.io/#/

2 comentarios:

  1. por ejemplo si tengo una url con servicio rest como hago para llamarla con este codigo

    ResponderBorrar
    Respuestas
    1. WebServer.create(
      Routing.builder()
      .get("/greet", (req, res)
      -> res.send("Hello World!"))
      .build())
      .start();

      Borrar