Shenyu API Gateway, 어렵지 않게 시작하기 2

2022. 10. 24. 21:54BACKEND

 

이전 포스팅에 이어 해당 포스팅에서는 ShenYu 초기 설정을 수정해보겠습니다.

기본 옵션인 H2 데이터베이스를 MySQL 로 변경하는 작업과 Port를 변경하는 작업,

그리고 만약 binary 파일을 다운받고 실행시켰을 때 java 명령을 못찾는 경우를 위해 경로를 지정하는 방법까지 알아보겠습니다. 

 

 

Using MySQL

Shenyu API Gateway에 MySQL을 적용하기 위해서는 Admin에 몇 가지 설정이 필요합니다.

순서는 아래와 같습니다.

 

1. Download MySQL Connector : Library Package 다운로드

2. conf/application.yml 설정 변경

3. conf/application-mysql.yml 설정 변경: MySQL 연결 정보 입력

 

하나씩 살펴보도록 할게요.

 

 

Download MySQL Connector

MySQL을 사용하려면 mysql-connector JAR 라이브러리 패키지를 다운받아야 합니다.

https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar

 

위치는 Shenyu Admin를 다운받은 디렉터리 내의 ext-lib/ 으로 다운받으면됩니다.

# apache-shenyu-2.5.0-admin-bin/ext-lib/
$ wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar

 

위의 명령어를 통해 mysql-connector-java 패키지를 다운 받습니다.

 

 

 

Modify application.yml

$ vi apache-shenyu-2.5.0-admin-bin/conf/application.yml

 

위의 명령을 입력하면 아래와 같이 기본 설정값이 h2 을 확인할 수 있습니다.

 

 

여기서 설정값을 spring.profiles.active=mysql 로 변경합니다.

 

# application.yml
...
spring:
  profiles:
    active: mysql
...

 

 

Modify application-mysql.yml

vi apache-shenyu-2.5.0-admin-bin/conf/application-mysql.yml


위의 파일에서 아래에 해당하는 MySQL 정보를 입력합니다.

spring:
  datasource:
    url: #mysql-host-url
    username: #mysql username
    password: #mysql password
    driver-class-name: com.mysql.cj.jdbc.Driver

 

위 설정까지 마치면 MySQL 설정이 끝났습니다.

 

 

 

Modify Port

기존의 포트를 그대로 사용하면 보안 상의 문제가 될 수 있으므로 포트를 변경합니다.
포트를 변경하기 위해서는 Admin과 Bootstrap 모두 변경해야 합니다.

 

Admin 모듈의 수정 경로는 아래와 같습니다.

$ vi apache-shenyu-2.5.0-admin-bin/conf/application.yml

 

Bootstrap 모듈의 수정 경로는 아래와 같습니다.

$ vi apache-shenyu-2.5.0-bootstrap-bin/conf/application.yml

 

admin, gateway은 각각 9095, 9195 번 포트를 사용하며,

위 파일 내 정의된 port를 기반으로 서로 동기화 통신하기 때문에

각 모듈의 application.yml에서 9095, 9195 모두 변경해야 합니다.

참고) vim을 통해 편집 시 아래 명령어를 사용해서 쉽게 변경할 수 있습니다.

%s/9095/{변경할_Admin_포트}/gc
%s/9195/{변경할_Bootstrap_포트}/gc

 

 

/g : 전체 변경
/c : 변경 여부 체크

EX. 8811, 8822 로 변경 시

:%s/9095/8811/gc # admin
:%s/9195/8822/gc # bootstrap port


포트 설정이 끝났습니다.
⚠️ shenyu-admin의 포트 설정을 변경했다면, shenyu-bootstrap에서도 동일하게 변경해주어야 합니다.

 

 

 

start.sh 수정

java 실행 옵션 변경

bin/start.sh에 기본으로 정의된 자바 실행 옵션을 변경해봅시다.

변경 전

JAVA_OPTS=" -server -Xmx2g -Xms2g -Xmn1g -Xss512k -XX:+DisableExplicitGC -XX:La rgePageSizeInBytes=128m"



변경 후

heap size를 128m 설정합니다.

JAVA_OPTS=" -server -Xmx128m -Xms128m -Xmn128m -Xss512k -XX:+DisableExplicitGC -XX:LargePageSizeInBytes=128m"



Java path 설정

만약, start.sh 을 실행시키다 java 를 못찾는다는 에러를 받을 수 있습니다.

 

Java path를 서버에 정의된 환경에 맞는지 확인합니다.

가령, 아래와 같이 변경할 수 있습니다.

 

 

변경 전

nohup java ${...} ...


변경 후

nohup $JAVA_HOME/bin/java ${...} ...



Run shenyu-admin

# linux / maxos
apache-shenyu-2.5.0-admin-bin/bin/start.sh
# window
apache-shenyu-2.5.0-bootstrap-bin/bin/start.bat

 

Run shenyu-bootstrap

# linux / maxos
apache-shenyu-2.5.0-bootstrap-bin/bin/start.sh
# window
apache-shenyu-2.5.0-bootstrap-bin/bin/start.bat