MSA

백엔드/MSA

[MSA] Kafka Connect

Kafka Connect란? Kafka는 Producer/Consumer를 통해 데이터 파이프라인을 만들 수 있다. 예를 들어, A서버 DB에 저장한 데이터를 B서버의 DB로도 보낼 수 있다. 이러한 파이프라인이 여러 개면 매번 반복적으로 파이프라인을 구성해줘야 한다. Kafka Connect는 이러한 반복적인 파이프라인 구성을 쉽고 간편하게 만들 수 있도록 만들어진 Apache Kafka 프로젝트 중 하나다. 위 사진을 보면 Kafka Connect를 이용해 왼쪽의 DB데이터를 Source Connector를 이용해 Kafka Broker로 보내고 Sink Connect를 이용해 Kafka에 담긴 데이터를 DB에 저장하는 것을 볼 수 있다. Connect : Connector를 동작하게 하는 프로세서(..

백엔드/MSA

[MSA] Spring Cloud Gateway

스프링 클라우드 게이트웨이 (Spring Cloud Gateway) Spring Cloud Gateway는 API Gateway 중 하나이다. [MSA] API Gateway API Gateway란? MSA는 여러 개의 프로젝트를 분리한다. 그럼 모든 요청에 대한 동일한 처리를 해야 할 때는 어떻게 해야 할까? API의 모든 요청에 대한 로그 파일을 만들고 싶다. 모든 요청에 대해 인 brightstarit.tistory.com 다시 말해, Spring Reactive 환경에 구현된 API Gateway다. API Gateway의 구현체로는 Spring Cloud Gateway를 제외하고도 Zuul과 AWS API Gateway 등이 있다. 다만, 차이점에서 볼 수 있는 것처럼 Spring Cloud G..

카테고리 없음

[MSA] API Gateway

API Gateway란? MSA는 여러 개의 프로젝트를 분리한다. 그럼 모든 요청에 대한 동일한 처리를 해야 할 때는 어떻게 해야 할까? API의 모든 요청에 대한 로그 파일을 만들고 싶다. 모든 요청에 대해 인증 및 권한을 부여하고 싶다. 들어온 요청을 적절한 서버에 전달하고 싶다. 위와 같은 문제를 해결하기 위해 등장하는 것이 바로 API Gateway이다. API Gateway의 동작방식 해당 구조는 Spring Cloud Gateway의 플로우인데, 이는 API Gateway의 한 종류이다. API Gateway는 하나의 모든 클라이언트의 요청이 하나의 서버로 들어와 해당 서버에서 요청이 정제되거나 조작되어 각자 목적에 맞는 서비스를 찾아가도록 도와준다. 또한 각 서버에서 적절한 로직을 수행한 뒤..

백엔드/MSA

[MSA] Service Discovery

Service Discovery란? MSA와 같은 분산 환경에서의 동작은 서비스 간의 원격 호출(API 호출)로 구성되며, 원격 호출은 각 서비스의 ip 주소와 port를 기반으로 요청된다. 클라우드 환경에서는 서비스가 autoScaling 등에 의해 동적으로 생성되거나, 컨테이너 기반의 배포로 인해서 서비스의 ip가 동적으로 변경되는 일이 잦아졌다. 이러한 변경은 클라우드에서 일어난 것이기 때문에 동적으로 변하는 ip를 수동으로 대응할 수는 없다. 때문에 클라우드 환경에서는 서비스 클라이언트가 서비스를 호출할 때, 서비스의 위치(ip 주소와 port)를 알아낼 수 있는 기능이 필요하다. 이것을 바로 Service Discovery라고 하며, 이를 구현하는 방법으로는 크게 Client Side Disco..

밝은별 개발자
'MSA' 태그의 글 목록