| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- mybatis
- Spring Data JPA
- DI
- 페이징
- AWS
- Dead Letter Queue
- JPQL
- JWT
- 컨테이너
- @Transactional
- DLQ
- CORS
- Spring
- docker
- Web
- docker compose
- 서블릿 컨테이너
- JdbcTemplate
- dockerhub
- 쿠버네티스
- Routing Key
- redis
- securitycontextholderfilter
- 스프링 부트
- MSA
- Spring Container
- 지연 로딩
- @ComponentScan
- JPA
- kafka
- Today
- Total
목록MSA (5)
look-forest
기본적인 마이크로서비스 구축프로젝트 아키텍처실무에서 쓸 MSA를 구축하려면 각 Service와 DB를 전부 독립적인 서버에 실행시켜야 한다.하지만 프로젝트의 심플함을 위해 로컬 컴퓨터 한 대에서 포트 번호만 다르게 해서 실행시킬 것이다 DB설계[모놀리식 아키텍처]모놀리식 아키텍처에서는 위 그림과 같이 user_id를 참조한 채로 DB를 설계하게 된다. [마이크로서비스 아키텍처]하지만 마이크로서비스에서는 DB가 독립적으로 분리되어 있기 때문에 user_id를 참조할 수 없다.하지만 특정 게시글이 어떤 사용자의 게시글인지 파악하기 위해 user_id에 대한 정보는 있어야 한다. 따라서 boards 테이블에서 user_id는 FK를 설정하지 않은 채로 컬럼을 생성하면 된다. MSA에서는 DB를 독립적으로 분리..
MSA(Microservice Architecture)란?하나의 큰 애플리케이션을 여러 개의 작고 독립적인 서비스로 나누어 개발하고 배포하는 소프트웨어 개발 아키텍처. 프로젝트 하나에 모든 API(결제 관련 API, 인증 관련 API, 상품 관련 API)를 전부 구현하는 모놀리식 아키텍처 방식과 비교해보자.이에 반해, 마이크로서비스 아키텍처(MSA)는 서비스에 필요한 API들을 하나의 프로젝트가 아닌 여러 개의 프로젝트로 나눠서 구현하는 방식이다. 아래 그림을 보면 결제 관련 API들끼리 모아놓은 프로젝트와, 인증 관련 API들끼리 모아놓은 프로젝트와, 상품 관련 API들끼리 모아놓은 프로젝트를 분리해서 구성했다. 그리고 MSA에서는 독립적으로 분리된 하나의 프로젝트를 서비스(service)라고 부른다...
개요RabbitMQ는 메시지 브로커이다. 애플리케이션 사이에서 메시지를 받아서 적절한 Queue로 라우팅하고 Consumer에게 전달하는 중간 서버이다. 시스템 간 비동기 메시징을 가능하게 하여 서비스 간 통신을 안정적이고 효율적으로 처리할 수 있게 해준다.최근 MSA 환경에서 가장 일반적으로 쓰이는 기술 중 하나이며, 대량의 데이터 전송 시 발생할 수 있는 과부화를 분산시키며비동기 처리와 지연이 필요한 작업을 효과적으로 관리해 줄 수 있다.클러스터를 설정할 때 큐를 HA(High Available)로 설정하여 여러 노드에 저정함으로써 메시지 손실을 방지하고, Federation 플러그인을 통해 데이터 동기화와 다중 마스터 복제를 구성할 수도 있다. 메세지큐를 사용하는 이유비동기 메시지를 사용하여 다른 ..
Kafka를 왜 배워야할까?마이크로서비스 아키텍처와의 통합에 유리하기 때문이다.최근에는 MSA를 도입하는 회사가 점점 많이 늘어나고 있는 추세다. 그런데 MSA의 방식으로 서비스를 운용할 때, Kafka의 여러가지 장점들 때문에 MSA에서 Kafka를 같이 도입해서 활용하는 추세다. Kafka는 마이크로서비스 아키텍처(MSA)에서 서비스 간의 비동기 통신 및 데이터 처리의 핵심 역할을 담당한다.카프카(Kafka)란? Apache Kafka는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션에 사용되는 오픈소스 분산 이벤트 스트리밍 플랫폼이다. 간단히 말해, Kafka는 대규모 데이터를 처리할 수 있는 메시지 큐이다.메시지 큐(Message Queue)란?큐(Queue)..
대규모 시스템 서버 인프라 기초1. Scale Out단일 서버의 성능을 향상시키는 수직 확장으로는 한계가 있다.(scale up)서버를 추가하는 수평 확장을 통해 여러 서버를 동시에 실행하여 처리를 분산할 수 있다. (scale out)트래픽을 라우팅 및 분산하기 위한 도구로 Load Balancer를 활용할 수 있다.2. Cache서버가 Client의 요청을 처리하는 과정이 복잡해질 수록 응답은 느려질 수 있다.더 빠른 성능을 위해 Cache를 도입할 수 있다.(더 빠른 저장소에 데이터를 저장해두고 접근) 이러한 캐시는 각 구간마다 적절히 적용될 수 있다.브라우저에서 자체적인 캐시 활용DNS 쿼리 결과를 캐시데이터베이스보다 더 빠르게 데이터에 접근하기 위한 캐시CDN 기술3. 다중화네트워크는 안전하지 ..