전체 글
-
실전 카프카 개발부터 운영까지 2isAlreadyRead 2025. 1. 5. 16:22
카프카 주요 구성요소1. 카프카(또는 카프카 클러스터)2. 브로커 카프카가 설치된 서버 또는 노드3. 프로듀서 카프카로 메세지를 보내는 역할을 하는 클라이언트4. 컨슈머 카프카에서 메세지를 꺼내가는 역할을 하는 클라이언트 컨슈머는 특정 컨슈머 그룹에 속하며, 같은 그룹에 속한 컨슈머들은 토픽의 파티션을 분산 처리함 기본적으로 컨슈머는 스티키 파티셔닝(Sticky Partitioning)을 사용. 이는 특정 컨슈머가 특정 파티션에 붙어서 계속해서 데이터를 처리하는 방식으로, 데이터 지역성을 높여 캐시 히트율을 증가시키고 전반적인 처리 성능을 향상시킴.5. 토픽 메시지를 저장하는 장소6. 파티션 병렬 처리 및 고성능을 위해 하나의 토픽을 여러개로 나눔 ..
-
실전 카프카 개발부터 운영까지isAlreadyRead 2025. 1. 5. 04:34
프로젝트에 카프카를 적용해야하여 카프카를 학습하는 중이다.강의와 서적 모두 학습 중인데 서적은 요약이 필요할 것 같아 대략적인 내용과 필요한 부분을 기록해 두려 한다.다만 카프카 버전이 현재와 많이 차이나므로 대략적으로 참고만 하는 식으로 진행할 것이며,사용 중단된 기능(Deprecated)에 대해서는 기록하지 않거나, 현재와의 차이점을 기록할 것이다. 1장. 카프카 개요기업의 카프카 도입 사례와 카프카의 장점 아파치 카프카와 인플루언트 카프카의 차이 -> 아파치 카프카는 자동차의 엔진이라면 인플루언트 카프카는 각종 편의기능(네비게이션, 조향장치 등)이 모두 탑재된 완성된 자동차 Apache Kafka와 Confluent Kafka의 주요 차이점기능Apache KafkaConfluent Kafk..
-
동시성이 터졌다.스파르타 심화/MSA 개인프로젝트 2024. 12. 14. 16:10
Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.sparta.msa_exam.order.entity.Order#2] 아주 멋진 에러가 터졌다.another transaction 바로 동시성 문제 바로 낙관적 락을 걸어주었다.jpa: properties: hibernate: use_version_always: true 엔티티엔@Version 추가 Detached entity with generated id '2' has an uninitialized version value 'null': com.sparta.msa_exam.orde..
-
프로젝트 시작 - 대략적인 구상스파르타 심화/MSA 개인프로젝트 2024. 11. 30. 18:17
문서로 제공된 요구사항 외에 내가 어떻게 구현해야할지에 대해 며칠을 고민했다. 거의 3일을 어떻게 해야할지에 대해 고민만 한 것 같다. 먼저 DB에 대한 고민 DB 분리 스키마 vs 테이블MSA 환경에서 데이터베이스를 어떻게 할 지 고민 도커컴포즈로 mysql과 레디스를 묶어 사용하려 했다. 이 경우 레디스는 key-space를 도메인 별로 나누면 된다. 하지만 mysql은 각 도메인마다 독립적like-it-too.tistory.com어떻게 해야할지에 대해 고민했던 것 같다. 깃허브 레포 관리에 대한 고민 마이크로서비스 깃허브 관리방식MSA 프로젝트를 하며 깃허브 레포지토리를 어떻게 관리해야할지많은 고민이 생겨 이것저것 알아보았다. 깃허브 관리 방식에는 3가지를 찾을 수 있었다. 1. 모노레포 (M..
-
매우 화나는 깃 - 하위 모듈 push rejected 해결?오늘/Error 2024. 11. 29. 20:39
결과 스포 프로젝트 전체 삭제 후 다시 만듦 하면 안되는 행동 목록 1. 모듈 remote 금지처음엔 main -> 이곳이 비어있어서 remote해줬는데 절대 이러면 안된다. 루트디렉토리만 push가 되고 하위 모듈들은 푸시를 거절당하게 된다. 나처럼 이런 실수를 저질렀다면 위와 같이 해당 디렉토리로 이동해 명령어를 실행하면된다.인텔리제이 파워쉘 명령어이기 때문에 본인의 설정에 맞춰 진행하면 된다.아무것도 안뜨면 성공한 것이다. Get 하기 귀찮으면 폴더에서 .git 파일을 찾아보면 된다. 그 다음으로 진행한 해결방식들 대체 왜..rebase로 양쪽을 맞춰보기도 했지만 결과는 같았다.여전히 커밋만 되고 깃허브에 푸시는 안되는 상태 git status로 상태를 보니 order와..