Medium - An introduction to Vert.x, the fastest Java framework today

원문 - Martin Budi

Trend 파악을 Medium 기고문 요약 포스팅 - 오늘 날 가장 빠른 자바 프레임워크, Vert.x에 대한 소개

아마 여러분이 최근에 “최고의 웹 프레임워크”를 구글링했다면 수백개가 넘는 프레임워크들이 랭크되어 있는 Techempower 벤치마크를 보셨을 수도 있습니다. 그러니까 Vert.x는 상위권에 있는 프레임워크일 뿐이지 가장 좋은 것은 아니라는 것을 아셔야 합니다.

자 그럼 Vert.x에 대해 얘기해 봅시다.

Vert.x는 루비, 스칼라, 자바, 코틀린, 자바스크립트 등 어러 개의 언어를 지원하는 다중 언어 웹 프레임워크 입니다. 언어를 차치하고 Vert.x는 자바 가상머신에서 수행됩니다. 모듈화되고 가볍기 때문에 마이크로서비스 개발에 특화되어 있습니다.

THe golden rule

val vertx = Vertx.vertx()
 vertx.createHttpServer().requestHandler(req => {

 }).listen(8080)
val vertx = Vertx.vertx()
  vertx.createHttpServer().requestHandler(req => {

    req.path() match {
      case p if p contains("/user") =>
        val f = for {
          f1 <- Future { req.getParam("id").get.toInt }
          f2 <- if (f1 < 100) Future.unit else Future.failed(CustomException())
          f3 <- Future { getUserFromDb(f1) }
        } yield f3
        f map (r => printout(req, r)) recover {case exception => printout(req, handleException(exception))}

      case _ => printout(req, "Default page")
    }

  })
  .listen(8080)

  def printout(req: HttpServerRequest, msg: String) = req.response().end(msg)

  def handleException(e: Throwable): String = {
    e match {
      case t: NoSuchElementException => "Missing parameter"
      case t: NumberFormatException => "Parameter not number"
      case t: CustomException => "Custom exception"
      case t: SQLException => "Database error"
      case _ => "Unknown error"
    }
  }

  def getUserFromDb(id: Int) = "mock user name"

  case class CustomException() extends Exception("custom exception")

Verticles, Event Bus, and other gotchas

Summary


© 2019. All rights reserved.

Powered by Hydejack v8.1.1