본문 바로가기

Spring/Cloud4

Spring With Kafka 이번 캡스톤 디자인 프로젝트를 진행하며 MSA를 사용하게 되었다. 이에 따라 서비스들을 잘게 나누었고 서비스들간의 비동기 이벤트를 처리하기 위해 Kafka를 사용하게 되었다. 본 포스팅에는 주키퍼/카프카는 무엇인지 어떻게 사용하는지 알아보도록 하자. 자세한 주키퍼/카프카의 내용은 다른 포스팅으로 다뤄 보도록 하겠다. 우선, Kafka를 알아보기 이전 Zookeeper에 관해 알아보도록 하자. (카프카의 여러 버전 중 주키퍼 없이 독립적으로 작동하는 카프카도 존재하지만,통상적으로 주키퍼와 함께 클러스터를 구축하여 동작하기에 주키퍼가 뭔지 알아보도록 한다.) Apache Zookeeper주키퍼는 이름처럼 동물원 사육사이다. 왜 이름이 이럴까? 많은 오픈 소스 프로젝트를 지원하는 Apache 재단의 프로젝트 .. 2024. 5. 5.
[Spring Cloud] Spring에서 MSA를 구축해보자 우리는 Spring에서 지원해주는 프레임워크 중 하나인 Spring Cloud를 활용하여 이전에 살펴본 MSA를 구현해볼 수 있다. Spring Cloud Netflix 스프링 클라우드 넷플릭스는 Spring Boot Application에 관한 통합 환경 구성을 지원하는 Netflix의 OSS 서비스이다. OSS: 오픈 소스 소프트웨어 Netflix OSS와 Spring Cloud Netflix Netflix OSS에는 다양한 서비스들이 존재한다. 각각에 관해 간략히 알아보자. Eureka : Discovery Server 각각의 서비스 인스턴스들이 동적으로 확장, 축소 되더라도 인스턴스의 상태를 하나의 서비스로 관리할 수 있는 서비스 Ribbon: Client Side Load Balancer 부하 .. 2024. 3. 27.
Spring Cloud란? Spring Cloud 란? Spring Cloud 란 Microservices의 개발, 빌드, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있게 도와주는 Spring Boot 기반 프레임워크 이다. (Spring Cloud를 사용하려면 Spring Boot는 필수라고 한다) Spring Cloud를 이용하면 MSA를 위한 환경설정, 서비스 검색, 라우팅, 프록시 등 분산 시스템을 빠르게 설정이 가능하다. Spring Cloud를 이용한 어플리케이션 개발시 자주 사용되는 기술 환경 설정은 Spring Cloud Config Server를 통해 개발을 하며 이를 통해 다양한 Microservices에서 사용하는 설정 정보들을 Git에 집어 넣을 수 있다. -> Microservices가 변경돼도 빌드 .. 2024. 3. 7.
Cloud Native, 12 factors, MSA 2010년대 이후부터 IT 시스템은 Antifragile 또는 Cloud Native Architecture 형태로 발전되어 왔다. Cloud Native Architecture의 특징 시스템의 수평적 확장에 유연하며 확장된 서버로 시스템의 부하 분산, 가용성이 보장 시스템 또는 서비스 어플리케이션 단위의 패키지(컨테이너 기반) 서버와 리소스들을 모니터링 도구를 이용해 확인 가능 서비스 생성-통합-배포, 비즈니스 환경 변화에 대응 시간 단축 분할된 서비스 구조, 무상태 통신 프로토콜 서비스의 추가와 삭제를 자동으로 감지 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리) 특정 서비스에 오류가 발생해도 다른 서비스에 영향을 주지 않음 (어떤 서비스를 수정한다 하면 전체 시스템 배포가 아니라 해당 서.. 2024. 3. 7.