여기서 소개하는 방식은 아직 Kafka-SSL 보안 연결사용이 불가하며, AzureKafka-SASSL 연결이 불가합니다.
프라이빗 네트워크에서 보안없는 Kafka연결시 유용하며
보안연결이 가능한 모듈은 다음을 참고합니다.
사전 요구사항:
- Kafka 시스템을 이해하고 도커로 구동해보기 : KAFKA 이해
- AKKA 시스템을 심플하게 사용할수 있는 AkkaDotModule 기본 셋팅법 익히기 : AkkaDotModule
- 아래 샘플을 통해 Kafka의 스트림을 AKKA-액터에 연결하기
Git : https://github.com/psmon/AkkaDotModule
Consumer와 Producer 구현
카프카의 Consumer와 Producer를 작동하기 위해 아래 코드면 충분합니다.
## KAfka Stream 액터시스템을 이용하여 Kafka를 더 심플하고 강력하게 사용가능합니다. // KAFKA 셋팅 var consumerSystem = app.ApplicationServices.GetService<ConsumerSystem>(); var producerSystem = app.ApplicationServices.GetService<ProducerSystem>(); //소비자 : 복수개의 소비자 생성가능 consumerSystem.Start(new ConsumerAkkaOption() { KafkaGroupId = "testGroup", KafkaUrl = "kafka:9092", RelayActor = null, //소비되는 메시지가 지정 액터로 전달되기때문에,처리기는 액터로 구현 Topics = "akka100" }); //생산자 : 복수개의 생산자 생성가능 producerSystem.Start(new ProducerAkkaOption() { KafkaUrl = "kafka:9092", ProducerName = "producer1" }); List<string> messages = new List<string>(); //보너스 : 생산의 속도를 조절할수 있습니다.( 카프카전송을 제어함으로 소비조절이 필요할때 ) int tps = 10; producerSystem.SinkMessage("producer1", "akka100", messages, tps);
Kafka Client 작동 설정
기본 설정파일을 사용하면 되며, 성능및 고급 작동방법 변경이 필요할시 설정화를 통해 튜닝가능합니다.
KAFKA Docker Compose
로컬 개발환경 카프카는 DockerCompose 를 통해 쉽게 구동가능합니다.
개발환경을 위한 kafka 클러스터
host 수정
kafka 127.0.0.1
참고링크 : Apakka라는 Kafka Stream을 Akka에 활용하는 모듈이 사용되었습니다.