동기
- 브로커로부터 ACK 받을 때까지 메인쓰레드에서 대기한다.
- 안정적인 메세지 전송 처리가 가능하겠지만 메세지 전송이 빈번하게 발생하는 운영 환경에는 적절하지 않다.
- java 기반의 kafka-client 에서는
KafkaProducer().send(…).get()
과 같이 동기방식으로 메세지 전송이 가능하다.
비동기
- 브로커로부터 ACK 받을 때 까지 대기하지 않고 ACK 결과는 콜백함수에서 처리한다.
- java 기반의 kafka-client 는 쓰레드를 새로 생성해서 메세지를 전송하고 콜백을 처리한다.