토마토바구니
1k
2021-08-15 21:54:26
4
252

kafka 다시 질문드립니다!


상황

아래와 같이 producer, conumer, 설정파일이 있습니다.


특정글 조회 시 글번호(long postNo)이 topic에 저장됩니다. 그리고 consumer가 해당 postNo을 가지고 와서 조회수 증가합니다.


포트는 8081/8082 (producer), 9091 (consumer) 입니다.

    public void sendMessage(long postNo) {
        System.out.printf("Producer message : %s%n", postNo);
        kafkaTemplate.send(topicCount, postNo);
    }
    @KafkaListener(topics = "viewCount", groupId = "yeon")
    public void consume(long postNo) {
        System.out.printf("Consumed message : %s%n", postNo);
        postRepository.updateViewCount(postNo);
    }
  kafka:
    producer:
      bootstrap-servers: localhost:9092
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.LongSerializer
    consumer:
      bootstrap-servers: localhost:9092
      group-id: abc
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.LongDeserializer


문제1

로컬에서는 잘 되는데, ubuntu 서버에서는 전혀 안됩니다...에러로그도 없어서 이해가 안됩니다..


문제2

아래의 내용을 바탕으로 직접 메세지를 입력하면 에러가 발생합니다. 기본 설정이 String이기 때문에 long으로 설정한 제 consumer에는 적용이 안되는것 같습니다.


혹시 이것이 문제일까 올려봅니다..

kafka-console-producer.sh --broker-list localhost:9092 --topic viewCount


0
  • 답변 4

  • 고내기
    1k
    2021-08-15 22:04:49
    localhost를 우분투 서버 ip로 변경 해보셨나요
  • 토마토바구니
    1k
    2021-08-15 22:14:23

    고내기

    .yaml 환경설정 파일은 바꿔봤습니다.

    그리고 Kafka 설정 파일의 listener 부분도 바꿔봤는데 안되네요ㅠㅠ

  • 행복하자!!
    338
    2021-08-16 00:12:25 작성 2021-08-16 00:35:14 수정됨
    말씀하신 명령어로 쓰기했을때 에러가 뭐라 나오던가요

    카프카 자체 문제로 추정 됩니다. 스프링과 별개로 콘솔은 돼야합니다

    일단 토픽 존재 여부 확인해주세요


  • 토마토바구니
    1k
    2021-08-16 17:08:21

    행복하자!!

    일단 토픽은 존재합니다.


    그리고 에러도 콘솔에서는 당연히 되는데, 콘솔에서의 메세지는 string이 기본값으로 알고 있습니다. 그래서 스프링부트에서는 LongSerializer를 쓰고 있어서, 해당 부분이 에러납니다.


    하지만 해당 에러는 String이 기본값이니 당연한데, 스프링부트에서 직접 메세지를 보낼 때는 에러도 없고 아무런 로그가 없습니다..

  • 로그인을 하시면 답변을 등록할 수 있습니다.