본문 바로가기

728x90
728x90

DevOps

[Docker] Docker로 Kafka 구성하기 - 컴도리돌이 이전 포스팅에서 Kafka에 대한 이론을 짧게 다뤘습니다. 기존에 설치된 Kafka를 사용해서 Spring boot에서도 연결했지만, 이번에는 도커에서 카프카를 설정하는 방법에 대해 공부하려고 합니다. Kafka 이론에 대해 적은 포스팅은 아래에 첨부해 놨습니다. [Kafka] Apache Kafka에 대해서 알아보기 - 컴도리돌이아파치 카프카는 마이크로서비스와 같은 현대적인 아키텍처에서 매우 유용하게 활용되는 오픈소스 메시지 스트리밍 플랫폼입니다. 현재 여러 IT 서비스와 플랫폼에서 표준처럼 사용되고 있지comdolidol-i.tistory.com Kafka는 메시지 브로커로, 대규모의 데이터를 처리하는 데 최적화되어 있으며, Zookeeper가 이를 지원합니다. Zookeeper는 Kafka의 클러스.. 더보기
[Redis] Redis 클러스터, 스프링 부트에서 설정하기- 컴도리돌이 Redis 클러스터는 데이터를 여러 노드에 분산 저장하여 확장성과 가용성을 높입니다. 이를 위해 Redis는 키를 해시 슬롯으로 매핑하고, 총 16.384개의 해시 슬롯을 노드들에 분배하죠. 클라이언트는 키의 해시 값에 따라 해당 슬롯을 처리하는 노드를 찾아가는데, 클러스터 재구성이나 노드 장애 시 MOVED 오류가 발생할 수 있어요. 이 경우, 클라이언트는 Redis로부터 새로운 노드 정보를 받고 재요청을 처리하게 됩니다.  Redis 클러스터 설정은 이전 포스팅에서 확인할 수 있습니다. 😆 Spring Boot 환경에서 Redis 클러스터를 구성하려면 먼저 application.yml에 클러스터 노드 정보를 설정해야 해요. spring: redis: cluster: nodes: .. 더보기
[Docker] Docker로 Redis 클러스터 구성하기 - 컴도리돌이 Redis 클러스터를 로컬에서 실행하기 위해 Docker를 설치하는 것이 첫 단계예요. Dcoker가 설치되어 있지 않다면 Docker 공식 사이트를 방문하여 설치한 뒤, 실행 가능한 상태인지 확인합니다. 설치가 완료되면 Redis 이미지를 내려받아야 해요. Redis의 최신 버전을 사용하려면 다음 명령어를 실행해야 합니다.docker pull redis:latest 먼저 Redis 클러스터를 구성하기 위한 기본 디렉터리 구조를 설정해야 해요.이를 위해 “redist-cluster”라는 각 노드의 클러스터 디렉터리를 만들고, 그 안에 서로 독립적으로 작동하는 node1, node2, node3이라는 디렉터리를 생성합니다.mkdir redis-clustercd redis-clustermkdir node1 .. 더보기
[Spring] Spring Cache Abstraction, @Cacheable, Redis Monitor 에 대해서 - 컴도리돌이 @Cacheable캐싱은 많은 애플리케이션에서 성능을 향상하는 핵심적인 기술 중 하나이며, 그중에서도 스프링 프레임워크에서는 @Cacheable 어노테이션을 통해 메서드 호출의 결과를 캐싱하는 기능을 제공합니다. 이를 통해 반복적인 계산을 피하고 응답 시간을 줄일 수 있게 됩니다. @Cacheable는 메서드의 특정 인자에 대한 결과 값을 캐시저장소에 저장하고 같은 인자에 대한 결과 값을 메서드를 실행하지 않고 캐싱 저장소에서 가져와 반환을 해줍니다. @Servicepublic class MyService { @Cacheable("book") public String findBookName(Long id) { ... }} 위에 코드와 같이 작성하고 findBook을 메서드를 호.. 더보기
[Spring] RedisConfig 설정(CachingConfigurer, CacheManager, RediscacheConfiguration, serialize, RedisCacheManager) - 컴도리돌이 Redis는 메모리 기반의 데이터 저장소로서, 캐싱, 세션 관리 등 다양한 용도로 사용되는데, 저는 스프링 부트를 사용하며 Redis는 대게 캐시 매니저나 세션을 저장을 할 때 활용되고 있어요. 스프링 부트에서는 Redis를 간편하게 설정하고 사용할 수 있는데, properties 또는 yml 파일에서 redis 호스트, 포트, 타입 등을 간단하게 설정할 수 있어요. 저는 properties 파일을 사용하기 때문에 다음과 같이 설정을 했습니다 spring.redis.port=6379spring.redis.host=localhostspring.cache.type=redis 스프링 부트에서 캐시 매니저를 사용하여 사용자가 설정한 조건에 따른 쿼리 데이터를 저장하는 경우가 많습니다.  이를 위해 자바 8을 사.. 더보기
[Redis] Single Redis Instance, Redis HA, Redis Sentinel, Redis Cluster 에 대해서 - 컴도리돌이 오늘은 Redis에 대해 정리하려고 합니다. Redis는 무엇일까요?Redis("Re mote DI ctionary S ervice")Redis에 대한 가장 정확한 설명은 데이터 구조 서버라는 것이에요.🤓 Redis의 이러한 특정 특성으로 인해 개발자들 사이에서 인기가 높아지고 채택이 이루어졌습니다. 데이터를 정렬하고, 저장하고, 다루는 방식이 정말 직관적이고 간편하거든요. 특히 Redis는 단순한 캐시 역할을 넘어서, 본격적인 데이터베이스로도 활용될 수 있어요. 기본적으로 Redis는 MySQL이나 PostgreSQL과 같은 다른 "실제" 데이터베이스 앞에 캐시로 사용되는 메모리 내 데이터베이스로, 애플리케이션 성능을 개선하는 데 도움이 됩니다. 메모리 속도를 활용하고 중앙 애플리케이션 데이터베이스의.. 더보기
[Kafka] Apache kafka에 대해서 스프링부트에서 알아보기 - 컴도리돌이 저번 블로그 포스팅에서 아파치 카프카(Apache kafka)에 대해서 알아보았습니다. 차근차근 중요한 용어에 대해서 알아보니 전체적으로 어떻게 동작하고 어떤 원리를 갖고 있는지 알 수 있었죠. 이번에는 간단하게 코드로 해당 용어들을 정리해 보려고 합니다. 🤓 [Kafka] Apache Kafka에 대해서 알아보기 - 컴도리돌이아파치 카프카는 마이크로서비스와 같은 현대적인 아키텍처에서 매우 유용하게 활용되는 오픈소스 메시지 스트리밍 플랫폼입니다. 현재 여러 IT 서비스와 플랫폼에서 표준처럼 사용되고 있지comdolidol-i.tistory.comKafka 브로커는 메시지를 저장하고, 프로듀서(Producer)또는 컨슈머(consumer)와 데이터를 교환하는 핵심 구성 요소입니다. Spring Boot에.. 더보기
[Kafka] Apache Kafka에 대해서 알아보기 - 컴도리돌이 아파치 카프카는 마이크로서비스와 같은 현대적인 아키텍처에서 매우 유용하게 활용되는 오픈소스 메시지 스트리밍 플랫폼입니다. 현재 여러 IT 서비스와 플랫폼에서 표준처럼 사용되고 있지만, 실제로 카프카를 활용한 서비스 개발 과정에서는 주의해야 할 점이 적지 않습니다. 🤔  이러한 문제의식을 바탕으로, 아파치 카프카의 기본 개념을 정리하고 실무 관점에서의 장점과 개발 시 유의점을 다뤄보려 합니다. 일단 가볍게 아파치 카프카에 대해서 적으려고 합니다.  아파치 카프카는 2011년 링크드인(LinkedIn)에서 처음 개발된 후, 현재는 아파치 소프트웨어 재단(Apache Software Foundation)에서 관리하는 오픈소스 프로젝트입니다. 당시 링크드인은 수많은 데이터를 실시간으로 처리하며 여러 문제가 발.. 더보기