프로젝트명 : 아카닷부트
닷넷 환경에서 AKKA(https://getakka.net/)의 모듈을 안정적으로 공통화하고 AKKA.NET을 학습할수 있는 환경을 제공하여
닷넷코어에서 유용한 메시지 큐처리를 다양한 프로젝트에서 심플하게 사용할수 있게 하는것이 목표입니다.
소스는 자유롭게 수정하여 사용가능하며, Nuget Package 모듈 형태로도 사용가능합니다.
Package Manager
Install-Package AkkaDotModule.Webnori -Version 1.0.5
Nuget : https://www.nuget.org/packages/AkkaDotModule.Webnori/
Git : https://github.com/psmon/AkkaDotModule
버전히스토리
- 1.0.9 : Kafka ConsumerActor 추가 (목적:Kafka SASSL모드지원) - 사용법
- 1.0.8 : Kafka ProducerActor 추가 (목적:Kafka SASSL모드지원) - Link
- 1.0.7 : 실시간 배치처리기(BatchActor) 추가
- 1.0.6 : Kafka 도커 인프라추가및, TestAPI 샘플 추가
- 1.0.5 : Kafka Stream 지원 : 액터시스템을 이용하여 Kafka를 더 심플하고 강력하게 사용가능합니다.
- 1.0.4 : AKKA 1.4.7 버전사용 - https://getakka.net/
- 1.0.3 : 메시지 우선순위(PriorityMessageMailbox) 처리기 추가
- 1.0.1 : 기본 액터(TestActors) 사용법추가
- 1.0.0 : Nuget에서 AkkaDotModule.Webnori 로 검색하여 설치가능 - 공식 Oepn
- 0.0.9 : DotNetAPP에서 AkkaDotModule을 쉽게사용하기위한 AkkaLoad 를 추가
- 0.0.8 : 조절기(ThrottleWork) 추가, 메시지를 대량인입하고 조절기에서 안전한 속도제어가 필요할때 사용
확장편 - 카프카를 심플하고 강력하게 사용하기
## KAfka Stream 액터시스템을 이용하여 Kafka를 더 심플하고 강력하게 사용가능합니다. // KAFKA 셋팅 // 각 System은 싱글톤이기때문에 DI를 통해 Controller에서 참조획득가능 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);