본문 바로가기
클라우드 데브옵스

Day75 2024.09.06.금 #코딩일기

by SSONG1521 2024. 9. 6.

클라우드 서버

Chapter 01. MSA 기본 개념

 

1.  Antifragile system 개념

 (1) Antifragilesystem (강건한 system) 구축의 필요성

항목 내용
Autoscaling 자동으로 server 운영개수 확장, 축소 지원
MicroService 작은 단위의 개별적 Module 운영, 작은 Service간 연동
Chaos Engineering SW 안정적운영, 규칙, 실행방법 등 불확실 System 안정적 운영
Continuous Deployments Continuous Integration , Continuous Develivery

 

- 강건한 system 구축을 위한 Cloud Native Architecture 적용이 필요

 

 

 

 

 

spring cloud 서버 만들기 (-> 돌아가는 로직은 똑같아서 세팅하는 방법만 배울 것이다.)

 

 

Spring Starter Project oBootMSADiscoveryService
package oBootMSADiscoveryService
class OBootMsaDiscoveryServiceApplication.java
package com.oracle.oBootMSADiscoveryService;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class OBootMsaDiscoveryServiceApplication {

	public static void main(String[] args) {
		SpringApplication.run(OBootMsaDiscoveryServiceApplication.class, args);
	}

}
Console
 

 

 - 유레카서버라고 지정해준다.

   -> 마이크로 서비스들을 등록할 수 있는 유레카 서버

 

 

 

 

 

 

Spring Starter Project oBootMSADiscoveryService
package resources
yml application.yml
server:
  port: 8761
  
spring:
  application:
    name: service-discovery
    
eureka:
  client:
    register-with-eureka: false #클라이언트가 유레카 서비스에 자신을 등록하지 않음
    fetch-registry: false # 레지스트리 정보를 클라이언트 로컬에 캐싱하지 않음. 유레카 클라이언트가 유레카 서비스에 등록 시 설정 가능
    service-url:
      defaultZone: http://localhost:8761/eureka/
Console

 

 - yml 만들어주기

 

 

 

 

 

 

 

com.oracle.oBootMSAUserService01.controller

com.oracle.oBootMSAUserService01.vo

패키지 만들기

 

 

 

 

 

Spring Starter Project oBootMSAUserService01
package oBootMSAUserService01
class OBootMsaUserService01Application
package com.oracle.oBootMSAUserService01;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class OBootMsaUserService01Application {

	public static void main(String[] args) {
		SpringApplication.run(OBootMsaUserService01Application.class, args);
	}

}
Console
 

 

 

 

 

 

Spring Starter Project oBootMSAUserService01
package resources
yml application.yml
server:
  port: 0 #서버를 랜덤하게 알아서 할당해주게끔
  
spring:
  application:
    name: user-service01
    
eureka:
  instance:
    instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}}
  client:
    register-with-eureka: true
    fetch-registry: true
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka/
      
greeting:
  message: welcome to MSA
Console
 

 

 

 

 

 

 

Spring Starter Project oBootMSAUserService01
package oBootMSAUserService01.vo
class Greeting
package com.oracle.oBootMSAUserService01.vo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import lombok.Data;

@Component
@Data
public class Greeting {
	
	@Value("${greeting.message}")
	private String message;
	
	
}
Console
 

 

 - yml에서 message값을 넣고 싶을 때, 

application.yml
Greeting.java

 

 

 

 

 

 

Spring Starter Project oBootMSAUserService01
package oBootMSAUserService01.vo
class Dept
package com.oracle.oBootMSAUserService01.vo;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class Dept {
	private int deptno;
	private String dname;
	private String loc;
}
Console
 

 

 

 

 

 

Spring Starter Project oBootMSAUserService01
package oBootMSAUserService01.controller
class UserServiceController01

 

Console
 

 

 - Environment는 환경작업을 얘기하는 것

 

health_check

 - 실행시키면 이 안에 들어가진다. (microservice를 추가하면 이 안에 들어가진다.)

이 url로 들어가서  (포트번호 랜덤) -> /health_check를 입력해준다.

 

 

 

deptMessage

 

greetingMessage