일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 플러터 개발
- K8S
- 자바공부
- 알고리즘공부
- Axon framework
- 카프카
- 스프링부트공부
- 프로그래머스
- DDD
- 코테공부
- JPA스터디
- nestjs
- 스프링공부
- 스프링 공부
- 플러터 공부
- nestjs스터디
- 기술면접공부
- JPA예제
- querydsl
- 스프링부트
- JPA 공부
- JPA
- JPA공부
- 코테준비
- 자료구조공부
- nestjs공부
- Flutter
- Kafka
- 스프링
- 기술공부
- Today
- Total
목록Develop/[Spring cloud] (13)
DevBoi
MSA에서 필수, Config 서버 분리 및 중앙 집중 관리 공부해보자 Spring 설정 파일을 외부로 분리할 수 있는 Spring cloud Config 이다. Spring Cloud Config 는 분산 시스템에서 설정파일을 외부로 분리하는 것을 지원한다. Spring Cloud Config를 사용하면 외부 속성을 중앙에서 관리할 수 있다. 즉, 각각 공통으로 쓰는 설정값들을 각 서버마다 배포할 필요가 없다는 뜻이다. 다양한 애플리케이션에서 동일하게 설정파일을 사용할 수 있다. 즉 한 서버에서 설정값들을 모아서 관리하고 다른서버에서 config에 대한 값을 참조시에 해당 서버에게 물어보고 동일하게 가져오는것이다. 이건 개념은 별로 없고... 그냥 한번 사용하면서 예를 들어보자 우선 Config Ser..
써킷 브레이커....실무에서 몇번 쓰이고 사실 비즈니스 로직만 짜는 단순 개발자가 아니라... 미들웨어를 배치 받거나... 클라우드를 쓰면 항상 나오는 개념이다. 써킷 브레이커 대충 느낌만 알아서 정리를 해보자 Hystrix를 이용해서 써킷브레이커를 구현하는 경우가 많다. 우선 Circuit breaker란? MSA에서 자주쓰이는 개념이다. 장애전파를 막아주는 역할을 한다. 예를 들어서 어떤 페이지를 호출했다고 가정해보자 그 페이지에서 여러 API를 호출하게 되는데, 해당 특정 한 API에서만 오류가 있다고 가정을 했을때, 해당 한개의 API 때문에 페이지가 504나, 에러페이지로 가는 경우가 있다. 이러한 경우를 막아주는, 즉 MSA환경에서 더 MSA같이 장애전파를 막아주는 개념이 써킷 브레이커다. 물..
실제 적용된 소스를 보면서 공부를 해보자 우선 대부분의 MSA소스에서, 그렇듯이 실습으로 구현 및 살펴볼 Gateway소스 또한 , config 와 service discovery 서버가 따로 띄워져있다고 가정하자 우선 Gateway 플젝을 생성한다. 이정도 디펜던시 정도만 추가해서 생성한다. 별다른건 없고, 빠르게 라우트를 추가해보자 http://localhost:8080/google/test 로 접속시에, google의 test로 검색했을때의 화면으로 리다이렉트 되게 끔 처리해보자 predicates는 path에 대한 검사이다. 만약 해당 url로 들어오면, googel.com으로 리다이렉트하고, filter를 통해서, requestparam이 추가, https://www.google.com/sear..
Gateway 관련 얕게 구현해봤고, 공부를 대충 해봤다. 이제 개념을 다시 익히고, 다시 공부를 시작해보면서 좀 더 깊게 개발을 진행해보자 API- Gateway는 클라이언트와 백엔드 서비스 사이에 위치하는 리버스 프록시 역할을 한다. 인증, 속도제어, 서킷브레이커,모니터링 등 다양한 공통 관리 모듈을 추가하여, 모든 API들의 관문의 역할을 하는 서비스 이다. 우선 Gateway는 Netty를 사용한다. 모든 요청이 통과하는 곳이기 때문에 성능적인 측면이 매우 중요하며, 기존의 1Thread/ 1 Request방식인 MVC를 사용하면 이슈가 발생한다. Netty 는 비동기 Was이고, 1Thread / Many Request이기 때문에 기존 방식보다 더 많은 요청을 처리할 수있다. 동작 방식은 아래와..
Spring Cloud Gateway란? Spring Reactive 생태계 위에 Spring Cloud에서 구현한 Api Gateway이다. Api gateway? reverse proxy를 향상 시켰다. Netfilix zuul, Amazon Api Gateway, Spring cloud Gateway등이 있다. *Reverse Proxy란? Proxy는 클라이언트와 서버간의 중계기이다. Proxy는 크게 Post Proxy 와 Reverse Proxy, 두가지가 존재한다. Post Proxy란, 사용자가 웹서버에 직접 접근 하는 것이 아니라, Proxy서버를 통해 간접적으로 요청 할 수 있게 해주는 것 Proxy 서버가 사용자 앞에 있는 것을 PostProxy라고 한다. Reverse Proxy는 ..
내가 담당하게 된 서비스 중 API-gateway의 모듈이 추가되었다. API-Gateway에 대해서 설명이 듣던중 서킷 브레이커 패턴에 대해서 듣게 되었고, 정확하게 몰라, 정리를 하면서 공부를 하려고한다. 대부분의 모놀리틱스 환경에서의 어플리케이션이다. 특정 서비스들은 서로를 호출하면서 영향을 주는 관계에 있다. 아니면 gateway를 사용하지 않는 msa의 환경에서도 이렇게 되어있다. 어떤 환경이냐면, 특정 서비스 A에서 B를 호출한다고 가정해보자 B가 행이찼거나 slow 현상이 발생하게 되면, 이는 A의 로드타임에도 영향을 미칠수있다. 두개면 두개로 간단하게 보이지만, 연관된게 점점 더 많아진다면? 더 많은 복잡한 장애가 발생하게 된다. 이를 "장애 전파"라고 한다. 서킷 브레이커는 하나의 패턴에..
각 서비스는 해당 주소와 포트번호가 다르다. 이러한 마이크로 서비스들은 Discovery Service에 저장된다. 외부에서 다른 서비스들이 마이크로 서비스를 검색하기 위해 사용되는 개념이며, 전화번호 책과 같은 느낌이다. 각각의 마이크로 서비스가 어디에 누가 저장되어있으며 요청 정보가 들어왔을때 요청 정보에 따라서 필요한 서비스의 위치를 알려주는 역할을 등록/검색 해주는 것을 Discovery Service라고 하면 유레카를 통해 구현이 가능하다. 우선 유레카 서버 구성이다. 서버는 실질적으로 간단하다. 단순히 포트 번호 지정하고, 해당 서버가 클라이언트가 되지 않게 옵션에서 false를 주면 끝난다. 유레카 라이브러리가 포함되어있으면 기본적으로 client의 역할로 등록하는 작업을 시도한다. 서버는 ..
Msa에서 게이트웨이 역할을 하는 Api gateway에 대해서 알아보자 관련 설정은 이전 포스팅에 자세히 다뤘으니, 이번에는 개념과 필요성 그리고 전반적인 개념에 대해서 알아보자 MSA는 큰 서비스를 잘게 쪼개어 개발/운영 하는 아키텍쳐이다. 하나의 큰 여러 서비스를 클라이언트가 직접 호출하는 형태라면? 아래와같은 이슈가 발생한다. -각각의 서비스마다 인증/인가 등 공통된 로직을 구현해야한다. -수많은 API 호출을 기록,관리 해야한다. -클라이언트에서 여러 마이크로 서비스에 대한 번거로운 호출을 해야한다. -내부 비즈니스 로직이 드러나게 된다. 이건, 서비스 개수가 많아질수록 기하급수적으로 늘어난다. 그래서! 이렇게 API gateway를 하나 두는 것이 효과적이다. API gateway는 soa의 ..
우선 느끼는건... 스프링 클라우드와 쿠버네티스, 도커에 대한 책을 좀 사서 공부를 해야겠다는 생각이들었다. 그래서 어느정도 대략적인 개념을 잡고 책을 사서 보도록하자 우선 SOA는 서비스 지향 설계 방식이다. 서비스 단위로 개발을 하고, 개발된 서비스들을 공유함으로써 재가용성을 늘리고 유연성을 확보한다. Msa는 마이크로 서비스 설계 방식이고 MSA 또한 아주 작은 단위의 서비스로, 소프트웨어를 구성함으로써 민첩하고 유연한 설계하는 것을 목표로 한다. 크게 말하면, 재가용성이다 SOA는 공통의 서비스를 esb에 모아, 사업 측면에서 공통 서비스 형식으로 서비스 제공을 하고 MSA는 각 독립된 서비스가 노출된 rest api를 사용한다. 무튼 나는 MSA를 공부하는거니까 이전에 알았던 유레카, api g..
Application Programing Interface + GateWay Api 인증 절차, 모니터링, 과도한 사용에 대한 제어의 기능을 해주는 Api gateway이다. 또한 msa구조에서 gateway 패턴은 가장 흔하고 유용하게 쓰는 패턴중 하나이다. API gateway는 하나의 모든 클라이언트의 요청이 하나의 서버로 들어와, 해당 서버에서 요청이 정제 되거나 조작되어 각자 목적에 맞는 서비스를 찾아가도록 도와주는 방식이다. 즉, 분배,인증,로깅 등등을 통합적으로 앞단에서 관리해주는 역할을 한다. 좀더 자세히 얘기하면 1. 프록시의 역할과 로드밸런싱 2. 인증 서버로의 기능 3. 로깅 서버로서의 기능 단점으로는 아래와 같다. 1. 병목현상 (전체 시스템의 성능이나 용량이 하나의 구성요소로 인해..