Quarkus와 "시라 DB"통합

안녕하세요!!지난 글에서 우리는'시라 데이터베이스'와 데이터베이스의 일부 특성을 토론했다.아직 그것을 보지 못한 사람들에게 이것이 바로 링크이다.오늘 나는 데이터베이스와 자바 응용 프로그램을 통합할 계획이다. 우리를 돕기 위해 자바+Quarkus를 사용하기로 결정했다.Quarkus는 OpenJDK HotSpot과GraalVM을 위한 맞춤형 자바 라이브러리와 표준으로 제작된 Kubernetes 원본 자바 창고입니다.그것은 속도가 빠르고 부피가 작기 때문에 초음속 아원자java라고 불린다.관심 있는 사람들에게 링크는 게시물의 마지막에 나타날 것이다.자, 이제 우리의 목표를 알았으니 시작합시다!!

응용 프로그램 만들기


첫 번째 단계는 프로그램을 만드는 것입니다. 이를 위해 Quarkus는 간단한 인터페이스를 제공합니다. 이 링크를 통해 https://code.quarkus.io/에 접근할 수 있습니다.

이 페이지에는 그룹 id,artifactId, 구축 도구 등 정보를 놓고 사용할 의존항을 선택합니다.

선택한 의존항을 알아보자
  • Datastack Apache Cassandra 클라이언트: Apache Cassandra 데이터베이스에 연결된 드라이버입니다.우리는 시라 데이터베이스가 카산델라를 기반으로 하는 것을 보았기 때문에 우리는 같은 클라이언트를 사용할 수 있다.
  • RESTEasy JSON-B: RESTEasy의 JSON-B 서열화 지원.우리는 단점을 사용하여 응용 프로그램
  • 과 상호작용을 할 것이다
  • RESTEasy 병변: RESTEasy 서버에 대한 병변 지원.만약 우리가 비동기 자원을 호출하고 싶다면 (이 예에서는 그것들을 사용하지 않는다).
  • SmallRye Health: 서비스 상태를 모니터링합니다.
  • 마이크로미터 등록Prometheus: 마이크로미터에 대한 Prometheus 지원을 사용하면 이 의존 관계를 통해 응용 프로그램의 도량을 수집할 수 있습니다.
  • 알겠습니다. 이제generate your 응용 프로그램 단추에서 응용 프로그램을 생성할 수 있습니다.
    IDE에서 응용 프로그램을 가져옵니다.
    Quarkus는 GET 테스트 자원을 제공하지만, GET 테스트 자원을 사용해서 삭제할 생각은 없습니다.

    If you want test, is enough execute mvn package quarkus:dev command, wait application is up and call http://localhost:8080/hello-reasteasy


    이제 우리는 우리의 실체를 만들 수 있다.실체류는 우리가 처리할 대상의 모델이다.대상은 Car이 된다.클래스 이름에는 주석 @Entity이 사용됩니다.클래스의 이름은 데이터베이스 테이블과 같아야 합니다.대상은 id, 브랜드, 색깔과 모델 필드를 가지고 있습니다.우리는 이전 글에서 id 필드가 메인 키라는 것을 보았기 때문에 주석 @PartitionKey을 사용할 것입니다.
    다음 글에서 나는'시라 키'와 관계 데이터베이스 간의 관계 차이를 토론할 것이다

    클래스에 104790의 의존항을 추가할 필요가 없기 때문이다.이러한 종속성은 다음과 같습니다.
  • com.세수oss:java 드라이버 핵심: 현대화되고 기능이 풍부하며 고도로 조절 가능한 java 클라이언트 라이브러리로 Apache Cassandra®(2.1+)와 DataStax Enterprise(4.7+) 및 DataStax Astra에 사용되며, Cassandra의 이진 프로토콜과 Cassandra 조회 언어(CQL) v3를 전문적으로 사용한다.
  • com.세수oss:java 드라이버 맵이 실행될 때: 맵은 샘플 파일을 생성하여 조회를 실행하고 결과를 응용 프로그램 수준의 대상으로 변환합니다.
  • https://mvnrepository.com/에서 종속성 다운로드 가능
    우리는 pom.xml에서 원시적인 마벤트 컴파일러 플러그인을 변경해야 한다. 아래와 같다.
    <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>com.datastax.oss.quarkus</groupId>
                                <artifactId>cassandra-quarkus-mapper-processor</artifactId>
                                <version>1.0.1</version>
                            </path>
                        </annotationProcessorPaths>
                    </configuration>
                </plugin>
    
    Quarkus는 DAO 등의 자원을 주입하기 위해 컴파일할 때 주석을 알아야 하기 때문에 필요하다.곧 보게 될 거야.pom.xml에 의존항이 포함된 후에 주석을 가져오고 구조 함수와 Getter/setter를 포함할 수 있습니다.

    나머지 방법은 모두 생략했다!
    다음 단계에서는 데이터 액세스 객체 또는 더 일반적인 DAO를 만듭니다.이 글은 두 가지 방법이 있는데, 하나는 선택 방법과 하나는 삽입 방법이다.

    주석 pom.xml은 DataStax 개체 맵에서 나온 것으로 이 인터페이스를 자동으로 생성합니다.@Dao@Insert의 생성 방법의 실현.또한 @Select 방법의 특수 반환 형식인 findAll을 주의해야 한다. 이것은 드라이버가 반환하는 결과 집합의 기본 형식이다.
    이제 DAO의 인스턴스를 구축하는 데 사용할 매퍼를 만듭니다.이 예에서는 PagingIterable의 실례를 만들 것이다.이름은 CarDAO입니다.

    저장된 정보와 상호작용하거나 데이터베이스에 새로운 정보를 저장하기 위해 REST 노드를 만들고 이를 위해 CarMapper 클래스를 만들 것입니다.예를 들면 POST와 GET 방법이 필요합니다.

    위의 그림에 관해서 우리는 약간의 세부 사항을 이야기합시다.애플리케이션에 액세스하는 리소스는 CarResource입니다.우리는 응용 프로그램에 JSON을 보내고 응용 프로그램의 JSON을 사용해야 한다.정보를 저장하거나 검색하기 위해서 우리는 데이터베이스에 접근해야 한다. 이를 위해 우리는 carsCarDAO에 주입할 것이다.
    마지막 단계는 응용 프로그램에서 데이터베이스 정보를 설정하는 것입니다.이를 위해 CarResource을 사용하겠습니다.

    우리가 노드인 시라를 열었을 때, 우리는 위의 정보를 볼 수 있었다.
    application.properties 명령을 사용하여 어플리케이션을 시작하겠습니다.

    브라우저를 사용하여 응용 프로그램 요청

    정보 저장

    새로 저장된 정보

    테스트를 통해 우리의 응용 프로그램은 완전하고 기능이 완비되었다.우리는 지금 더 많은 기능을 탐색할 수 있다.mvn package quarkus:devpom.xml 의존항을 추가한 이유는 시라 집단과의 연결을 검증하기 위해 준비된 상태 검사를 자동으로 추가하기 때문입니다.접속이 올바른지 확인하려면 http://localhost:8080/q/health/ready을 방문하십시오.

    이제 Scyllab을 실행하는 docker를 일시 중지합니다.

    그리고 다시 연결을 테스트합니다.

    우리는'시라'세션의 지표와 단일'시라'노드에 대한 지표를 볼 수 있다. 이를 위해 우리의 quarkus-smallrye-health에 속성 quarkus.cassandra.metrics.enabled=true을 추가하면 충분하다. 우리는 이미 했다.지표를 보려면 http://localhost:8080/metrics을 방문하십시오.

    결론


    이 글의 의도는 자바 응용 프로그램과Scylla DB를 통합하는 방법과 Quarkus를 사용하는 것이 얼마나 쉬운지 보여주는 것이다.일부 세부 사항은 브라우저에서 찾을 수 있지만, 예를 들어 메인 키와 같지만, 우리는 다음 글에서 볼 수 있다.나는 네가 그것을 좋아하길 바란다. 어떤 의심, 비판, 건의도 나에게 알려줄 수 있기를 바란다.기꺼이 너를 돕겠다.
    도구책
    https://quarkus.io/
    https://quarkus.io/guides/cassandra

    좋은 웹페이지 즐겨찾기