spring kafka sample
스프링 카프카로 간단한 sample 프로그램 해볼려고 한다.
프로그램 자체는 스프링 카프카 자체 sample 코드를 사용하려고 한다.
그럼 먼저 카프카를 다운로드 하겠다.
압축을 푼후에 다음 명령어를 실행하겠다. 주키퍼 실행
1 |
|
실행이 되면 카프카를 실행하겠다.
1 | sanaesdevui-MacBookPro:kafka_2.12-2.3.0 sanaes$ bin/kafka-server-start.sh config/server.properties |
sample1
첫번째 샘플은 기본적인 구조로서 간단한 실패처리 방법에 대해서 설명함
첫번째 sample 코드를 실행시킨후
1 | curl -X POST http://localhost:8080/send/foo/bar |
위에 메시지를 전송시키는 api를 실행시키면 로그가 찍히는것을 확인 할수있다.
그다음 최초 설정 대로 3번 실패시에 DLT 큐로 전송하는 코드를 실행 하는것을 볼려면
1 | curl -X POST http://localhost:8080/send/foo/fail |
위에 명령어를 실행 시키면 3번 실행후에 실패 큐로 전송하는것을 확인 할수 있다.
sample2
두번째는 multi-method consumer 구조를 설명시키는 구조로써
1 | curl -X POST http://localhost:8080/send/foo/bar |
위에 명령어를 실행시키면 각각의 메소드가 실행 되는것을 볼수 있다.
sample3
세번째 샘플은 트렌젝션을 설명하는 예제 있다.
1 | curl -X POST http://localhost:8080/send/foos/a,b,c,d,e |
위에 명령어를 실행시키면 엔터를 치라는 문구가 나오고 엔터를 쳐야 트랜젝션이 묶음으로 처리된다.
1 | 2019-07-08 10:45:46.215 INFO 11584 --- [fooGroup2-0-C-1] com.example.Application : Received: [Foo2 [foo=a], Foo2 [foo=b], Foo2 [foo=c], Foo2 [foo=d], Foo2 [foo=e]] |