Spring Boot - Google Cloud Platform

Google Cloud Platform, Spring Boot uygulamasını bulut ortamında çalıştıran bir bulut bilişim hizmetleri sağlar. Bu bölümde, Spring Boot uygulamasının GCP uygulama motoru platformunda nasıl dağıtılacağını göreceğiz.

Öncelikle, Gradle build Spring Boot uygulamasını www.start.spring.io Spring Initializer sayfasından indirin . Aşağıdaki ekran görüntüsüne bakın.

Şimdi, build.gradle dosyasında, Google Cloud appengine eklentisini ve appengine sınıf yolu bağımlılığını ekleyin.

Build.gradle dosyasının kodu aşağıda verilmiştir -

buildscript {
   ext {
      springBootVersion = '1.5.9.RELEASE'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
      classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.3'
   }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'com.google.cloud.tools.appengine'

group = 'com.tutorialspoint'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
   mavenCentral()
}
dependencies {
   compile('org.springframework.boot:spring-boot-starter-web')
   testCompile('org.springframework.boot:spring-boot-starter-test')
}

Şimdi, basit bir HTTP Uç Noktası yazın ve gösterildiği gibi String başarısını döndürür -

package com.tutorialspoint.appenginedemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class AppengineDemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(AppengineDemoApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String success() {
      return "APP Engine deployment success";
   }
}

Ardından, app.yml dosyasını src / main / appengine dizini altına gösterildiği gibi ekleyin -

runtime: java
env: flex

handlers:
- url: /.*
   script: this field is required, but ignored

Şimdi, Google Cloud konsoluna gidin ve sayfanın üst kısmındaki Google bulut kabuğunu etkinleştir'i tıklayın.

Şimdi, kaynak dosyalarınızı ve Gradle dosyanızı google bulut kabuğunu kullanarak google bulut makinenizin ana dizinine taşıyın.

Şimdi gradle appengineDeploy komutunu yürütün ve uygulamanızı Google Cloud uygulama motoruna dağıtacaktır.

Note - GCP'de faturalandırma etkin olmalıdır ve uygulamanızı uygulama motoruna dağıtmadan önce GCP'de uygulama motoru platformu oluşturmalısınız.

Uygulamanızı GCP uygulama motoru platformuna dağıtmak birkaç dakika sürecektir.

Başarılı bir şekilde oluşturulduktan sonra, konsol penceresinde Servis URL'sini görebilirsiniz.

Şimdi, servis URL'sine basın ve çıktıyı görün.

Google Cloud SQL

Google Cloud SQL'i Spring Boot uygulamanıza bağlamak için aşağıdaki özellikleri application.properties dosyanıza eklemeniz gerekir.

JDBC URL Biçimi

jdbc:mysql://google/<DATABASE-NAME>?cloudSqlInstance = <GOOGLE_CLOUD_SQL_INSTANCE_NAME> &socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = <USERNAME>&password = <PASSWORD>

Note - Spring Boot uygulaması ve Google Cloud SQL aynı GCP projesinde olmalıdır.

Application.properties dosyası aşağıda verilmiştir.

spring.dbProductService.driverClassName = com.mysql.jdbc.Driver
spring.dbProductService.url = jdbc:mysql://google/PRODUCTSERVICE?cloudSqlInstance = springboot-gcp-cloudsql:asia-northeast1:springboot-gcp-cloudsql-instance&socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = root&password = rootspring.dbProductService.username = root

spring.dbProductService.password = root
spring.dbProductService.testOnBorrow = true
spring.dbProductService.testWhileIdle = true
spring.dbProductService.timeBetweenEvictionRunsMillis = 60000
spring.dbProductService.minEvictableIdleTimeMillis = 30000
spring.dbProductService.validationQuery = SELECT 1
spring.dbProductService.max-active = 15
spring.dbProductService.max-idle = 10
spring.dbProductService.max-wait = 8000

YAML dosyası kullanıcıları application.yml dosyanıza aşağıdaki özellikleri ekleyebilir.

spring:
   datasource: 
      driverClassName: com.mysql.jdbc.Driver
      url: "jdbc:mysql://google/PRODUCTSERVICE?cloudSqlInstance=springboot-gcp-cloudsql:asia-northeast1:springboot-gcp-cloudsql-instance&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user=root&password=root"
      password: "root"
      username: "root"
      testOnBorrow: true
      testWhileIdle: true
      validationQuery: SELECT 1
      
      max-active: 15
      max-idle: 10
      max-wait: 8000