Skip to content

Commit

Permalink
docs: 주석 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
jemin committed Dec 27, 2023
1 parent a6e09cc commit ee15bed
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

@Slf4j
@Aspect
@Order(Ordered.LOWEST_PRECEDENCE - 1)
@Order(Ordered.LOWEST_PRECEDENCE - 1) // 숫자가 작을수록 우선순위가 높다.
@Component
@RequiredArgsConstructor
public class DistributedLockAspect {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ RedisConnectionFactory redisCacheConnectionFactory() {
따라서 한번의 재시도 요청을 고려하여 2초라는 타임아웃을 설정했습니다.
*/
LettuceClientConfiguration lettuceClientConfiguration = LettuceClientConfiguration.builder()
.commandTimeout(Duration.ofMillis(200))
.commandTimeout(Duration.ofMillis(150))
// .clientOptions(ClusterClientOptions.builder().topologyRefreshOptions(topologyRefreshOptions).build())
.build();

Expand All @@ -88,12 +88,11 @@ public ObjectMapper objectMapper() {
}

/*
설정 종류
- cache key는 String으로 직렬화 진행합니다.
- cache value는 여러 타입이 들어올 수 있기에 GenericJackon2JsonRedisSerializer를 사용했습니다.
- User 데이터는 수정이 적을 것으로 예상되어 1시간으로 TTL을 설정했습니다.
- Memory 데이터도 수정이 적을 것으로 예상되어 1시간으로 TTL을 설정했습니다.
- Group 데이터도 수정이 적을 것으로 예상되어 1시간으로 TTL을 설정했습니다.
캐시 TTL 시간 설정 기준
- USER 프로필 캐시는 조회에 비해 변경 가능성이 적고 TTL로 1일을 설정했습니다.
- SCRAP 캐시는 변경 가능성이 높지만 개인화된 데이터이고 TTL로 1일을 설정했습니다.
- MEMORY 상세 페이지 캐시는 메모리 이외에도 그룹 정보, 장소 정보들이 혼합되기 때문에 TTL을 10분으로 짧게 설정했습니다.
- GROUP 상세 페이지 캐시는 그룹 이외에도 유저 정보가 혼합되기 때문에 TTL을 10분으로 짧게 설정했습니다.
Circuit breaker를 통한 HA 보장
레디스로 분산 캐시를 구현 시 레디스 서버가 다운될 수 있습니다. 이때 Spring Cache는 자동으로 DB 조회를 하는 것이 아니라 예외가 발생합니다.
Expand All @@ -113,10 +112,10 @@ public CacheManager customCacheManager(

/* Cache TTL 설정 */
Map<String, RedisCacheConfiguration> redisCacheConfigMap = new ConcurrentHashMap<>();
redisCacheConfigMap.put(CacheNames.USER, defaultConfig.entryTtl(Duration.ofMinutes(10)));
redisCacheConfigMap.put(CacheNames.DETAIL_MEMORY, defaultConfig.entryTtl(Duration.ofMinutes(1)));
redisCacheConfigMap.put(CacheNames.GROUP, defaultConfig.entryTtl(Duration.ofMinutes(5)));
redisCacheConfigMap.put(CacheNames.SCRAP, defaultConfig.entryTtl(Duration.ofMinutes(10)));
redisCacheConfigMap.put(CacheNames.USER, defaultConfig.entryTtl(Duration.ofDays(1L)));
redisCacheConfigMap.put(CacheNames.SCRAP, defaultConfig.entryTtl(Duration.ofDays(1L)));
redisCacheConfigMap.put(CacheNames.DETAIL_MEMORY, defaultConfig.entryTtl(Duration.ofMinutes(30)));
redisCacheConfigMap.put(CacheNames.GROUP, defaultConfig.entryTtl(Duration.ofMinutes(10)));

RedisCacheManager redisCacheManager = RedisCacheManager.builder(connectionFactory)
.withInitialCacheConfigurations(redisCacheConfigMap)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import java.util.List;

import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -46,7 +45,7 @@ public class MemoryService {
메모리 상세 정보 조회
TODO : 각 reader들이 MSA 상에서 client 통신을 통해 데이터를 조회하고, 복잡한 전시 서비스라 생각하고 캐시를 설계해보자
*/
@Cacheable(cacheNames = CacheNames.DETAIL_MEMORY, key = "#memoryId")
// @Cacheable(cacheNames = CacheNames.DETAIL_MEMORY, key = "#memoryId")
public MemoryResponseDto getMemory(final Long memoryId) {

Memory memory = memoryReader.read(memoryId);
Expand Down
1 change: 1 addition & 0 deletions core/core-api/src/main/resources/monitoring-prod.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
management.endpoints.web.exposure.include: '*'
management.endpoint.health.show-details: always

management.metrics.export.cloudwatch.namespace: mellyApp
management.metrics.export.cloudwatch.batchSize: 10
management.health.diskspace.enabled: false
Expand Down
2 changes: 1 addition & 1 deletion lib
Submodule lib updated from 5bb47c to 900c3c

0 comments on commit ee15bed

Please sign in to comment.