Hasura GraphQL 엔진 및 분산 SQL을 사용하여 실시간 위치 어플리케이션 배포
이 박문에서 우리는 당신에게 어떻게 하는지 보여 드리겠습니다.
분산 SQL 또는 YugabyteDB의 초보자?계속 읽어 주세요.
분산 SQL이란 무엇입니까?
자동 분포식 조회가 실행되기 때문에 단일 노드가 병목이 되지 않습니다.
Yugabyte DB가 뭐예요?
YugabyteDB는 오픈소스, 고성능의 분포식 SQL 데이터베이스로 구글 스패너의 계발을 바탕으로 확장과 용량 오류 설계를 구축한다.YugabyteDB는 PostgreSQL wire와 호환되고 클라우드 네이티브이며 GraphQL 프로젝트와 깊이 있게 통합되며 저장 프로세스, 트리거, UDF 등 고급 RDBMS 기능을 지원합니다.
1단계: GKE 클러스터에 Helm 3을 사용하여 YugabyteDB 설치
이 섹션에서는 클러스터에 YugabyteDB를 설치합니다.전체 단계를 기록합니다here.GKE 클러스터가 이미 있다고 가정하고 이를 시작점으로 실행합니다.
먼저 해야 할 일은 도표 저장소를 추가하는 것이다.
$ helm repo add yugabytedb https://charts.yugabyte.com
이제 업데이트를 가져옵니다.
$ helm repo update
네임스페이스를 만듭니다.이런 상황에서 우리는 이를 yb-demo
라고 부른다.
$ kubectl create namespace yb-demo
예상 출력:
namespace/yb-demo created
우리는 지금 YugabyteDB를 설치할 준비를 하고 있다.다음 명령에서는 리소스가 제한된 환경에 값을 지정합니다.
$ helm install yb-demo yugabytedb/yugabyte \
--set resource.master.requests.cpu=1,resource.master.requests.memory=1Gi,\
resource.tserver.requests.cpu=1,resource.tserver.requests.memory=1Gi,\
enableLoadBalancer=True --namespace yb-demo --wait
클러스터의 상태를 확인하려면 다음 명령을 수행합니다.
$ kubectl get services --namespace yb-demo
참고: 외부 IP를 사용하여 YugabyteDB와 Hasura를 연결합니다.이 프레젠테이션에서 IP는 yb-tserver-service
, YSQL 포트는 35.224.XX.XX
입니다.
2단계: YugabyteDB를 사용하도록 Hasura 설정
다음 명령을 실행하여 Hasura Kubernetes 배포 및 서비스 파일을 가져옵니다.
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/deployment.yaml
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/svc.yaml
파일의 데이터베이스 URL을 수정하여 YugabyteDB의 IP를 포함합니다.vi와 같은 텍스트 편집기를 사용하여 이 파일을 편집할 수 있습니다. 기본적으로 YugabyteDB의 5433
사용자는 비밀번호가 없습니다. 기본 데이터베이스는 deployment.yaml
입니다.
이 강좌에서는 다음과 같이 수정해야 합니다.
value: postgres://yugabyte:@35.224.XX.XX:5433/yugabyte
참고 모든 컨텐트가 yugabyte
네임스페이스에서 실행되도록 하려면 yugabyte
및 yb-demo
파일의 네임스페이스 값을 수정해야 합니다.이것은 내가 이 시범을 위해 선택한 설정이다.
파일을 저장한 후 deployment.yaml
명령을 사용하여 Hasura 배포를 만듭니다.
$ kubectl create -f deployment.yaml
deployment.apps/hasura created
$ kubectl create -f svc.yaml
service/hasura created
외부 IP를 찾아 Hasura 콘솔을 열려면 다음 명령을 수행합니다.
$ kubectl get services --namespace yb-demo
현재svc.yaml
를 사용하여 Hasura 콘솔에 액세스합니다.이 예에서는 kubectl
입니다.지금 Hasura 콘솔을 보셔야 합니다.
3단계: 실시간 추적 위치 응용 프로그램 설치
3단계에서 우리는 현지에서 일할 것이다.이 프레젠테이션에서 나는 맥 컴퓨터를 사용했다.
예제 응용 프로그램 다운로드
$ git clone https://github.com/hasura/graphql-engine
$ cd graphql-engine/community/sample-apps/realtime-location-tracking
Hasura CLI 설치
$ curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
구성을 수정합니다.yaml 파일
http://<EXTERNAL-IP>/console
디렉토리로 이동하여 Hasura 서비스의 외부 IP 편집34.68.XX.XX
파일을 사용합니다.예:
endpoint: http://34.68.XX.XX
docker compose를 수정합니다.yaml 파일
같은 hasura/
디렉터리에서 config.yaml
파일을 수정하고 다음과 같이 변경합니다.
비밀번호 필요 없어요.
environment:
- “POSTGRES_PASSWORD:“
포트 할당을 수정하여 YugabyteDB에 연결할 수 있도록 합니다.
ports:
- “5433:5433“
YugabyteDB 매개변수를 사용하여 연결 문자열을 지정합니다.
environment:
- HASURA_GRAPHQL_DATABASE_URL: postgres://yugabyte:@35.224.xx.xx:5433/yugabyte
상수를 수정합니다.js 파일
hasura/
디렉터리로 이동하여 docker-compose.yaml
파일을 편집하고 다음과 같이 변경합니다.
//Constants file
export const HASURA_GRAPHQL_URL = '34.68.XX.XX/v1/graphql';
const HASURA_GRAPHQL_ENGINE_HOSTNAME = '34.68.XX.XX';
마이그레이션 적용
디렉터리로 돌아가 마이그레이션 스크립트를 실행합니다.
$ hasura migrate apply
이제 Hasura 컨트롤러에서 예시 프로그램 테이블을 볼 수 있을 것입니다.
응용 프로그램 시작
우리는 현재 src/
에 있는 응용 프로그램 루트 디렉터리에서 이 응용 프로그램을 실행할 준비를 하고 있다
참고: Node를 설치해야 합니다.시스템에 js가 없으면
$ npm start
예시 프로그램의 로그인 페이지를 포함하는 브라우저 창이 열립니다.
위치 추적 버튼을 클릭하여 실시간 위치 추적 예제를 봅니다.
결론
그렇습니다!현재 Hasura GraphQL 엔진은 GKE의 3개 노드 YugabyteDB 집단에서 실행되고 있다.GraphQL 실시간 위치 추적 프로그램은 로컬에서 실행되지만 클라우드에서는 Hasura와 YugabyteDB를 이용한다.
Reference
이 문제에 관하여(Hasura GraphQL 엔진 및 분산 SQL을 사용하여 실시간 위치 어플리케이션 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 섹션에서는 클러스터에 YugabyteDB를 설치합니다.전체 단계를 기록합니다here.GKE 클러스터가 이미 있다고 가정하고 이를 시작점으로 실행합니다.
먼저 해야 할 일은 도표 저장소를 추가하는 것이다.
$ helm repo add yugabytedb https://charts.yugabyte.com
이제 업데이트를 가져옵니다.$ helm repo update
네임스페이스를 만듭니다.이런 상황에서 우리는 이를 yb-demo
라고 부른다.$ kubectl create namespace yb-demo
예상 출력:namespace/yb-demo created
우리는 지금 YugabyteDB를 설치할 준비를 하고 있다.다음 명령에서는 리소스가 제한된 환경에 값을 지정합니다.$ helm install yb-demo yugabytedb/yugabyte \
--set resource.master.requests.cpu=1,resource.master.requests.memory=1Gi,\
resource.tserver.requests.cpu=1,resource.tserver.requests.memory=1Gi,\
enableLoadBalancer=True --namespace yb-demo --wait
클러스터의 상태를 확인하려면 다음 명령을 수행합니다.$ kubectl get services --namespace yb-demo
참고: 외부 IP를 사용하여 YugabyteDB와 Hasura를 연결합니다.이 프레젠테이션에서 IP는
yb-tserver-service
, YSQL 포트는 35.224.XX.XX
입니다.2단계: YugabyteDB를 사용하도록 Hasura 설정
다음 명령을 실행하여 Hasura Kubernetes 배포 및 서비스 파일을 가져옵니다.
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/deployment.yaml
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/svc.yaml
파일의 데이터베이스 URL을 수정하여 YugabyteDB의 IP를 포함합니다.vi와 같은 텍스트 편집기를 사용하여 이 파일을 편집할 수 있습니다. 기본적으로 YugabyteDB의 5433
사용자는 비밀번호가 없습니다. 기본 데이터베이스는 deployment.yaml
입니다.
이 강좌에서는 다음과 같이 수정해야 합니다.
value: postgres://yugabyte:@35.224.XX.XX:5433/yugabyte
참고 모든 컨텐트가 yugabyte
네임스페이스에서 실행되도록 하려면 yugabyte
및 yb-demo
파일의 네임스페이스 값을 수정해야 합니다.이것은 내가 이 시범을 위해 선택한 설정이다.
파일을 저장한 후 deployment.yaml
명령을 사용하여 Hasura 배포를 만듭니다.
$ kubectl create -f deployment.yaml
deployment.apps/hasura created
$ kubectl create -f svc.yaml
service/hasura created
외부 IP를 찾아 Hasura 콘솔을 열려면 다음 명령을 수행합니다.
$ kubectl get services --namespace yb-demo
현재svc.yaml
를 사용하여 Hasura 콘솔에 액세스합니다.이 예에서는 kubectl
입니다.지금 Hasura 콘솔을 보셔야 합니다.
3단계: 실시간 추적 위치 응용 프로그램 설치
3단계에서 우리는 현지에서 일할 것이다.이 프레젠테이션에서 나는 맥 컴퓨터를 사용했다.
예제 응용 프로그램 다운로드
$ git clone https://github.com/hasura/graphql-engine
$ cd graphql-engine/community/sample-apps/realtime-location-tracking
Hasura CLI 설치
$ curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
구성을 수정합니다.yaml 파일
http://<EXTERNAL-IP>/console
디렉토리로 이동하여 Hasura 서비스의 외부 IP 편집34.68.XX.XX
파일을 사용합니다.예:
endpoint: http://34.68.XX.XX
docker compose를 수정합니다.yaml 파일
같은 hasura/
디렉터리에서 config.yaml
파일을 수정하고 다음과 같이 변경합니다.
비밀번호 필요 없어요.
environment:
- “POSTGRES_PASSWORD:“
포트 할당을 수정하여 YugabyteDB에 연결할 수 있도록 합니다.
ports:
- “5433:5433“
YugabyteDB 매개변수를 사용하여 연결 문자열을 지정합니다.
environment:
- HASURA_GRAPHQL_DATABASE_URL: postgres://yugabyte:@35.224.xx.xx:5433/yugabyte
상수를 수정합니다.js 파일
hasura/
디렉터리로 이동하여 docker-compose.yaml
파일을 편집하고 다음과 같이 변경합니다.
//Constants file
export const HASURA_GRAPHQL_URL = '34.68.XX.XX/v1/graphql';
const HASURA_GRAPHQL_ENGINE_HOSTNAME = '34.68.XX.XX';
마이그레이션 적용
디렉터리로 돌아가 마이그레이션 스크립트를 실행합니다.
$ hasura migrate apply
이제 Hasura 컨트롤러에서 예시 프로그램 테이블을 볼 수 있을 것입니다.
응용 프로그램 시작
우리는 현재 src/
에 있는 응용 프로그램 루트 디렉터리에서 이 응용 프로그램을 실행할 준비를 하고 있다
참고: Node를 설치해야 합니다.시스템에 js가 없으면
$ npm start
예시 프로그램의 로그인 페이지를 포함하는 브라우저 창이 열립니다.
위치 추적 버튼을 클릭하여 실시간 위치 추적 예제를 봅니다.
결론
그렇습니다!현재 Hasura GraphQL 엔진은 GKE의 3개 노드 YugabyteDB 집단에서 실행되고 있다.GraphQL 실시간 위치 추적 프로그램은 로컬에서 실행되지만 클라우드에서는 Hasura와 YugabyteDB를 이용한다.
Reference
이 문제에 관하여(Hasura GraphQL 엔진 및 분산 SQL을 사용하여 실시간 위치 어플리케이션 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/deployment.yaml
$ wget https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/kubernetes/svc.yaml
value: postgres://yugabyte:@35.224.XX.XX:5433/yugabyte
$ kubectl create -f deployment.yaml
deployment.apps/hasura created
$ kubectl create -f svc.yaml
service/hasura created
$ kubectl get services --namespace yb-demo
3단계에서 우리는 현지에서 일할 것이다.이 프레젠테이션에서 나는 맥 컴퓨터를 사용했다.
예제 응용 프로그램 다운로드
$ git clone https://github.com/hasura/graphql-engine
$ cd graphql-engine/community/sample-apps/realtime-location-tracking
Hasura CLI 설치
$ curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash
구성을 수정합니다.yaml 파일
http://<EXTERNAL-IP>/console
디렉토리로 이동하여 Hasura 서비스의 외부 IP 편집34.68.XX.XX
파일을 사용합니다.예:endpoint: http://34.68.XX.XX
docker compose를 수정합니다.yaml 파일
같은
hasura/
디렉터리에서 config.yaml
파일을 수정하고 다음과 같이 변경합니다.비밀번호 필요 없어요.
environment:
- “POSTGRES_PASSWORD:“
포트 할당을 수정하여 YugabyteDB에 연결할 수 있도록 합니다.ports:
- “5433:5433“
YugabyteDB 매개변수를 사용하여 연결 문자열을 지정합니다.environment:
- HASURA_GRAPHQL_DATABASE_URL: postgres://yugabyte:@35.224.xx.xx:5433/yugabyte
상수를 수정합니다.js 파일
hasura/
디렉터리로 이동하여 docker-compose.yaml
파일을 편집하고 다음과 같이 변경합니다.//Constants file
export const HASURA_GRAPHQL_URL = '34.68.XX.XX/v1/graphql';
const HASURA_GRAPHQL_ENGINE_HOSTNAME = '34.68.XX.XX';
마이그레이션 적용
디렉터리로 돌아가 마이그레이션 스크립트를 실행합니다.
$ hasura migrate apply
이제 Hasura 컨트롤러에서 예시 프로그램 테이블을 볼 수 있을 것입니다.응용 프로그램 시작
우리는 현재
src/
에 있는 응용 프로그램 루트 디렉터리에서 이 응용 프로그램을 실행할 준비를 하고 있다참고: Node를 설치해야 합니다.시스템에 js가 없으면
$ npm start
예시 프로그램의 로그인 페이지를 포함하는 브라우저 창이 열립니다.위치 추적 버튼을 클릭하여 실시간 위치 추적 예제를 봅니다.
결론
그렇습니다!현재 Hasura GraphQL 엔진은 GKE의 3개 노드 YugabyteDB 집단에서 실행되고 있다.GraphQL 실시간 위치 추적 프로그램은 로컬에서 실행되지만 클라우드에서는 Hasura와 YugabyteDB를 이용한다.
Reference
이 문제에 관하여(Hasura GraphQL 엔진 및 분산 SQL을 사용하여 실시간 위치 어플리케이션 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Hasura GraphQL 엔진 및 분산 SQL을 사용하여 실시간 위치 어플리케이션 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yugabyte/deploying-a-real-time-location-app-with-hasura-graphql-engine-and-distributed-sql-1855텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)