바로 QUARKUS를 해봤어요.
QUARKUS는 어떤 사람입니까?
실행 VM에서 GraalVM의 새 Java 프레임을 설정합니다.
레드하트는 개발업자다.
The goal of Quarkus is to make Java a leading platform in Kubernetes and serverless environments while offering developers a unified reactive and imperative programming model to optimally address a wider range of distributed application architectures.
Quarkus의 목표는 Kubbernetes와 서버가 없는 등 환경에서 분산된 환경이 광범위한 응용체계 구조에 적응하기 위해 개발자에게 능동적이고 비조작적인 프로그래밍 모델을 종합적으로 제공하여 자바를 선진적인 플랫폼으로 만드는 것이다.
공식 블로그에서 말했듯이 스프링과 플레이는 조금 늦은 무서버 운영 환경에 대응했다.
또 예전과 마찬가지로 유창하지 않은 패턴으로 썼다
긍정적인 글쓰기와 함께 대응하는 것도 큰 매력 중 하나죠.
RxJava를 사용하면 더 유연하고 지연을 쉽게 느끼지 못하는 응용 프로그램 행동을 실현할 수 있을 것이다.
저장된 라이브러리도 유연하게 대응할 수 있기 때문에 뭐라도 하면 충분하지 않겠습니까?
Hibernate ORM의 기본 사양을 제외하고는
MariaDB, PostgreSQL을 지원하는 것 같습니다.
그나저나 Kotlin도 쓸 수 있어요.
자세한 내용은 여기서부터 시작하세요.
↓↓↓
https://quarkus.io/get-started/
운영 환경
macOS Mojave 10.14.3
모바일 QUARKUS에 필요한
설정
Mac이므로 홈brew로 설치
brew update && brew install Maven
설치 확인mvn --version
이렇게 대답하시면 성공입니다.Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 1.8.0_162, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.3", arch: "x86_64", family: "mac"
GraalVM 설정
GraalVM(gravm-ce-1.0-rc13-macos-amd64.tar.gz) 설치
↓↓↓
https://github.com/oracle/graal/releases
GravalVM의 환경 변수 설정(GRALVM HOME)
셸에 맞추어 패스하십시오.
bash -> bashprofile
zsh -> zshrc
GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-1.0.0-rc13-macos-amd64/Contents/Home
새 프로젝트 시작
프로젝트를 배치할 디렉토리로 이동
$ mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
-DprojectGroupId=jp.acme \
-DprojectArtifactId=getting-started \
-DclassName="org.acme.quickstart.GreetingResource" \
-Dpath="/hello"
QUARKUS 기반 Maven 구축 애플리케이션을 시작할 수 있습니다.디렉터리 구조는 이렇습니다.
/docker용 Docker file
/java에 필요한 Java 코드를 여기에 놓으면 Greeting Resource가 느껴집니다.자바내용↓↓
GreetingResource.java
package org.acme.quickstart;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "hello";
}
}
/hello에서 GET를 하면 간단한 코드가 "hello"로 되돌아옵니다.구축
# 開発モードで起動
$ mvn compile quarkus:dev
개발 모드로 시작하면 열중재가 가능합니다.(핫 리셋은 변경될 때마다 차분을 컴파일하고 반영하는 기능)
부팅 성공 후 확인
기본 설정에서 8080 포트가 일어나서curl을 두드려서 Hello로 되돌아갈지 확인합니다
curl http://localhost:8080/hello
로컬 바이너리 생성
$ mvn package -Pnative -Dnative-image.docker-build=true
말하자면, 이른바 자연 2진법이란 무엇입니까?모든 기계가 준비한 집행을 위해 필요한 명령을 내리는 기계 언어를 가리킨다.
즉, GraalVM을 사용하면 Linux가 Linux에 가장 적합한 기계 언어를 토해낸다는 것이다
겸사겸사 말씀드리지만, 이 처리는 약간의 시간이 필요합니다.
본가의 문서에도 나에게 15분의 시간을 주겠다고 쓰여 있다.
Docker 구축
여기 오면 Docker를 만들어 보세요.
명령은 여기 있습니다.
$ docker build -f src/main/docker/Dockerfile -t <イメージ名> .
그러면 방금 만든 초기 응용 프로그램에 포함된 Docker file을 사용하여 이미지를 구성합니다.Docker file에서는 이런 느낌이에요.
####
# Before building the docker image run:
#
# mvn package -Pnative -Dnative-image.docker-build=true
#
# Then, build the image with:
#
# docker build -f src/main/docker/Dockerfile -t quarkus/getting-started .
#
# Then run the container using:
#
# docker run -i --rm -p 8080:8080 quarkus/getting-started
#
###
FROM registry.fedoraproject.org/fedora-minimal
WORKDIR /work/
COPY target/*-runner /work/application
RUN chmod 775 /work
EXPOSE 8080
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
COPY target/*-runner /work/application
target 산하의 로컬 바이너리를 어떤 식으로 사용해야 한다고 적혀 있습니다.Docker 컨테이너 시작
$ docker run -i --rm -p 8080:8080 <イメージ名>
이 명령을 누르면 방금 그림을 시작할 수 있습니다.포트는 8080호입니다.이때 실행 속도가 보였지만 매우 빨랐다.
내 손에서 0.005초로 시동이 걸렸다.
총결산
QUARKUS를 사용하면 Docker에 기본적으로 대응하는 시작 속도에 대한 JVM의 약점을 극복할 수 있는 응용을 개발할 수 있다.
또 제작된 Docker 이미지를 바탕으로 공동의 개발 환경을 조성해 대규모 개발에 적합하다고 할 수 있다.
이를 계기로 자바의 환경이 더욱 흥미로워졌으면 한다.
그랄VM에 상당한 관심이 생겼기 때문에 그랄VM에 대한 기사는 다음에 쓰도록 하겠습니다.
Reference
이 문제에 관하여(바로 QUARKUS를 해봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takao-h/items/5949e12123de993dc15e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)