| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- @ComponentScan
- redis
- JPQL
- 지연 로딩
- Routing Key
- Spring Data JPA
- 쿠버네티스
- 컨테이너
- CORS
- docker compose
- DLQ
- JdbcTemplate
- JWT
- Spring Container
- JPA
- kafka
- 스프링 부트
- 서블릿 컨테이너
- DI
- dockerhub
- Dead Letter Queue
- MSA
- Web
- docker
- securitycontextholderfilter
- Spring
- @Transactional
- AWS
- mybatis
- 페이징
- Today
- Total
목록Shard (2)
look-forest
조회 수 기능 구현을 통해 대규모 시스템에서 Redis를 어떻게 활용하는지 알아보자.조회수 어뷰징 방지 정책은 다음과 같다.- 각 사용자는 게시글 1개 당 10분에 1번 조회 수 집계조회수 설계조회 수는 게시글 수나 좋아요 수와는 달리, 다른 데이터의 개수로 파생되는 것이 아니다.좋아요 수에 비해 데이터 일관성이 덜 중요하고, 쓰기 트래픽이 비교적 많다.(게시글 조회만만 해도 트래픽이 증가하므로)따라서 디스크 접근 비용과 트랜잭션 관리 비용을 감수할 필요가 없다.따라서, In-memory Database를 사용해 볼 수 있고, 많이 사용되는 Redis를 사용하자.인기글 선정 시 필요하므로, 자체적인 백업 시스템도 간단히 구축해본다.(Redis에 저장된 데이터를 MySQL에 직접 백업)RedisIn-mem..
데이터베이스 트래픽을 분산하는 방법(Sharding), 고가용성을 확보하는 방법(Replica)을 알아보자.분산 데이터베이스서비스가 활성화 되면서 DB에 저장할 데이터와 트래픽이 많아졌다.먼저 Scale-Up을 적용했으나 얼마 후 서비스가 더욱 활성화되면서 단일 DB로 처리하기엔 부담이 커졌다.Scale-Out을 적용해 DB를 하나 더 늘렸다. 그렇다면, 데이터는 각 DB에 어떻게 분산될 수 있을까?Sharding샤딩을 이용해 데이터를 여러 DB에 분산할 수 있다.Sharding: 데이터를 여러 데이터베이스에 분산하여 저장하는 기술Shard: 샤딩된 각각의 데이터 단위샤딩을 이용하면각 샤드에 데이터가 분산 저장되므로 성능 및 공간 이점이 생긴다.하지만, 데이터의 분리로 인해 조인 및 트랜잭션 관리가 복잡..