본문 바로가기

개발관련 이것저것18

o.apache.kafka.clients.NetworkClient-1145 - [Consumer clientId=consumer-comnKeywordGroup-1, groupId=comnKeywordGroup] Error while fetching metadata with correlation id 157 : {comnKeyword-updates=LEADER_NOT_AVAILABLE} springboot 카프카 적용시 아래와 같은 에러를 만났다. o.apache.kafka.clients.NetworkClient-1145 - [Consumer clientId=consumer-comnKeywordGroup-1, groupId=comnKeywordGroup] Error while fetching metadata with correlation id 157 : {comnKeyword-updates=LEADER_NOT_AVAILABLE} 해당 에러는 카프카에 토픽이 등록 안된 상태이므로 토픽을 등록해주고 재시작 하면 된다. [Consumer clientId=consumer-comnKeywordGroup-1, groupId=comnKeywordGroup] Error while fetching me.. 2024. 10. 16.
Springboot + Redis + Kafka 설치부터 설정, 실행 과정 최근 수정이 적고 반복적으로 질의 되는 DB 데이터를 Cache할 일이 생겼습니다. 어떤 방식으로 할까 고민하다. 최근 많이 사용되는 Redis Cache, Kafka 방식을 선택하였고 그 과정을 간단하게 기록으로 남깁니다. 애플리케이션이 A, B 두개가 있다고 가정하고 B에서는 API를 통해 반복적으로 조회가 일어납니다. 반복적인 질의는 불필요하므로 캐시를 적용합니다. 이때, A서버에서 데이터의 저장, 수정, 삭제 등과 같은 트랜잭션이 일어나게 되면 Kafka를 통해 B 서버로 변경을 알리게 됩니다. B서버는 이를 감지하고 Redis 캐시를 무효화 하고 새롭게 데이터를 Redis Cache에 적재합니다. Redis 설정Redis 설치Redis는 메모리 내 데이터 구조 저장소로, 캐시, 데이터베이스, 메.. 2024. 10. 16.
고수준 & 저수준 고수준 모듈과 저수준 모듈을 구분하는 것은 소프트웨어 시스템 설계에서 중요한 개념입니다. 이를 이해하려면 각 모듈의 역할과 시스템 내에서의 위치를 고려해야합니다. 고수준 모듈 (High-level Module)고수준 모듈은 시스템의 주요 로직이나 정책을 포함하는 모듈입니다. 이 모듈은 시스템이 수행해야 할 큰 그림을 담당합니다.비즈니스 로직, 애플리케이션의 주요 기능을 포함합니다.다른 모듈의 동작을 지시하거나 조정합니다. ( 다른 모듈을 호출하거나 상호작용하는 주요 진입점 )일반적으로 인터페이스를 통해 다른 모듈과 상호 작용합니다. ( 구체적인 세부 사항을 다루지 않음 )컨트롤러(OrderController, UserController), 서비스 레이어 (OrderService, UserService.... 2024. 5. 24.
SOLID 단일 책임 원칙 (SRP : Single Responsibility Principle)단일 책임 원칙 이란 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화 해야한다. 클래스가 제공하는 모든 기능은 이 책임과 주의 깊게 부합해야합니다. 로버트 마튼은 책임을 변경하려는 이유로 정의하고, 어떤 클래스나 모듈은 변경하려는 단 하나의 이유만 가져야 한다고 합니다. * 코드 라인이 100줄 이상이라면 책임이 많은건 아닌지 의심해야봐 합니다. 개방-폐쇄 원칙 (OCP : Open-Closed Principle)개방-폐쇄 원칙은 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다. 는 프로그래밍 원칙입니다. 이 원칙을 잘 적용하면 기능이 추가되거.. 2024. 5. 23.