본문 바로가기

스프링 클라우드

(4)
The Twelve-Factor App 최근 소프트웨어를 서비스 형태로 제공하는게 일반화 되면서, 웹앱 혹은 SaaS(Software As A Service)라고 부르게 되었다. Twelve-Factor app은 아래 특징을 가진 SaaS 앱을 만들기 위한 방법론이다. 설정 자동화를 위한 절차를 체계화하여 새로운 개발자가 프로젝트에 참여하는데 드는 시간과 비용을 최소화한다. OS에 따라 달라지는 부분을 명확히하고, 실행 환경 사이의 이식성을 극대화한다.(OS에 종속되지 않는 애플리케이션) 클라우드 플랫폼에 적합하고, 서버와 시스템의 관리가 필요없게 된다. 개발 환경과 운영 환경의 차이를 최소화하고 민첩성을 극대화하기 위해 지속적인 배포가 가능하다. 툴, 아키텍쳐, 개발방식을 크게 바꾸지 않고 확장(scale up)할 수 있다. Twelve-F..
Kafka - Spring cloud stream kafka(스프링 클라우드 스트림 카프카) Kafka - Spring cloud stream kafka(스프링 클라우드 스트림 카프카) 이전 포스팅까지는 카프카의 아키텍쳐, 클러스터 구성방법, 자바로 이용하는 프로듀서,컨슈머 등의 글을 작성하였다. 이번 포스팅은 이전까지 작성된 지식을 바탕으로 메시징 시스템을 추상화한 구현체인 Spring Cloud Stream을 이용하여 카프카를 사용하는 글을 작성하려고 한다. 혹시라도 카프카에 대해 아직 잘모르는 사람들이 이 글을 본다면 이전 포스팅을 한번 참고하고 와도 좋을 것같다.(이번에 작성하는 포스팅은 Spring Cloud stream 2.0 레퍼런스 기준으로 작성하였다.) 그리고 이번 포스팅에서 진행하는 모든 예제는 카프카를 미들웨어로 사용하는 예제이고, 카프카는 클러스터를 구성하였다. ▶︎▶︎▶︎..
Spring Cloud - Eureka를 이용한 마이크로서비스 동적등록&탐색&부하분산처리 Spring Cloud - Eureka를 이용한 마이크로서비스 동적등록&탐색&부하분산처리스프링 클라우드 유레카는 넷플릭스 OSS에서 유래됐다. 자가 등록, 동적 탐색 및 부하 분산에 주로 사용되며, 부하 분산을 위해 내부적으로 리본을 사용한다.마이크로서비스의 장점 중 하나인 동적인 서비스 증설 및 축소를 유레카를 이용하면아주 쉽게 가능하다. 위의 그림과 같이 사용자의 사용이 급격하게 많아졌다고 가정해보자.그렇다면 위와 같이 서비스 인스턴스를 증설할 것이다. 여기에서 유레카를 사용한다면 마이크로서비스 인스턴스를 하나 추가하면자가 등록을 통해 유레카서버에 자신의 서비스를 등록한다.그러면 동적으로 추가된 인스턴스를 탐색할 수 있게 되고 내부적으로 리본에 의해같은 인스턴스 4개가 부하 분산(로드밸런싱) 처리가 ..
Spring Cloud - Spring Cloud Config(스프링 클라우드 컨피그) Spring Cloud - Spring Cloud Config(스프링 클라우드 컨피그)Spring cloud Config(스프링 클라우드 컨피그) 서버는 애플리케이션과 서비스의 모든 환경설정 속성 정보를 저장하고, 조회하고 관리할 수 있게 해주는 외부화된 환경설정 서버다. 스프링 컨피그는 환경설정 정보의 버전 관리 기능도 지원한다. 환경설정 속성 정보를 애플리케이션 배포 패키지에서 분리해 외부화하고 외부 소스에서 설정 정보를 읽어노는 방법이다. 위의 그림과 같이 스프링 클라우드 컨피그 서버가 모든 마이크로서비스의 환경설정정보를 가지고 있고,설정 배포의 작업을 진행한다. 하지만 항상 서버에 접근해서 설정정보를 가져오지는 않고,첫 애플리케이션 구동 단계에서 설정정보를 가져와 로컬에 캐시를 해둔다. 그리고 만..