Spring Cloud로 개발하는 MSA/데이터 동기화를 위한 Apache Kafka의 활용

Kafka Topic의 적용

webmaster 2022. 2. 8. 10:36
728x90
  • OrderService에 요청된 주문의 수량정보를 CatalogService에 반영하기
  • CategoryService(Consumer)
    • 의존성 추가
      • CategoryService.POM.XML 의존성 추가
    • Bean 설정 파일 등록
      • CategoryService.kafkaConsumerConfig 설정파일 추가
         
      • kafkaListenerContainerFactory() 
        • Topic을 변경사항을 계속 Listening하고 있는 Bean
      • consumerFactory()
        • ConsumerFactory 정보를 등록하는 Bean
    •  CatalogService 등록
      • 지정된 Topic이 변경이 감지되었을때 실행될 서비스를 작성한다.
      • CategoryService.KafkaConsumer 추가
      •  
      • catalogRepository를 주입받는다.
      • @KafkaListener를 통해 어떤 Topic에 변경을 감지할지를 작성한다.
        • kafka를 통해 메시지를 받아 category에 넣어준다.
  • OrderService(Producer)
    • 의존성 추가
      • OrderService.POM.XML 의존성추가
    • Bean 설정 파일 등록
      • OrderService.kafkaProducerConfig 설정파일 추가 
      • kafkaTmplate() 
        • 데이터를 전송할 때 사용할 Bean
      • ProducerFactory
        • 전송하는 Producer Kafka를 설정
    • OrderService의 KafkaProducer 추가
      • OrderService.kafkaProducer 추가
      • ObjectMapper를 통해 orderDto를 StringJson으로 변경하고 이를 kafkatemplate을 통해 전송한다.
    • OrderService 수정
      • kafkaProducer에다 전송해야 되는 데이터를 추가한다.
      • OrderService.Controller에 KafkaProducer를 주입받는다
      • kafkaProducer를 실행시키는 코드를 추가한다
728x90