Kafka4 KafKa를 활용한 데이터 동기화 저번에는 두개의 각기다른서비스에서 kafka 토픽을 이용해 데이터를 주고받는 시나리오였다면 이번엔 같은서비스의 2개이상의 인스턴스에서 데이터 insert시 kafka에 토픽을 보내고 해당토픽을 sink connector를 통해 단일 db에 저장하는 시나리오이다. 단일db로는 MariaDB를 사용한다. @Service @Slf4j @RequiredArgsConstructor public class OrderProducer { private final KafkaTemplate kafkaTemplate; List fields = Arrays.asList(new Field("string",true,"order_id"), new Field("string",true,"user_id"), new Field("stri.. 2023. 9. 11. SpringFramework Kafka 커맨드를 활용해 producer topic consumer의 통신을 살펴보았다 이번엔 실제 예제프로젝트를 통해 해당통신을 구현해보도록한다. 기존 order-service와 catalog-service간의 kafka를 이용한 메시지 통신을 구현한다. order-service에서 주문이 발생하면 해당주문의 상품주문개수만큼 catalog-service의 재고에서 빠지도록하는 예제이다. order-service와 catalog-service의 데이터베이스는 각각 별도로 존재한다. 먼저 order -service(producer)에 dependency를 추가한다. org.springframework.kafka spring-kafka 그후 config 파일을 생성한다. @EnableKafka @Configurati.. 2023. 9. 8. KafKa 커맨드 활용예시 Kafka 다운로드 후 zookeeper 실행 명령어 ./bin/zookeeper-server-start.sh ./config/zookeeper.properties Kafka서버 실행 명렁어 ./bin/kafka-server-start.sh ./config/server.properties 토픽생성 ./bin/kafka-topics.sh --create --topic example-events --bootstrap-server localhost:9092 \ --partitions 1 토픽목록확인 ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list 좀전에 생성한 example-events토픽이 있는걸 확인 할 수 있음 프로듀서와 컨슈머를 이용한 간.. 2023. 9. 7. Kafka 개요 마이크로 서비스를 운영함에 있어서 같은 서비스가 두 개 이상 실행될 때, 데이터도 각 서비스의 DB별로 데이터가 분산되어 저장된다. 따라서 같은 사용자가 데이터를 저장해도, 여러 개의 DB에 데이터가 나누어 저장될 수 있다. 효율적인 데이터 동기화를 위해 아파치의 kafka솔루션을 활용하도록한다. Scalar언어로 된 오픈 소스 메시지 브로커 Broker ID와 Controller ID 등 메타 데이터를 저장하는 ZooKeeper와 연동되어 있으며 여러 개의 브로커 중 1대는 브로커에게 파티션을 할당하고 모니터링 하는 controller 기능을 수행 실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연 시간을 가진 플랫폼 제공 RabbitMQ도 같은 기능을 하지만 데이터 용량과 안정성이 훨.. 2023. 9. 5. 이전 1 다음