Page History
...
단지 ORM의 도움을 받았을때 더 스마트하고 짧은 코드로 처리가 가능합니다. ( Message Object → Entity Object → 데이터베이스에 영속화 )
모니터링
벌크처리능력을 매트릭스를 통해 처리량을 집계능력을 집계할때 유용할수 있습니다.
샘플은 AKKA 모니터링이 활용되었으며 데이터독과 연동되으며.., 이벤트 카운트를 1씩올리는게아닌
벌크처리된 카운팅을 올리면 되겠습니다.
Code Block | ||
---|---|---|
| ||
if (bulkItems_completed.Count > 0 && IsWriteDB) { BatchType = "completed"; EntityFrameworkManager.ContextFactory = context => new BatchRepository(Startup.AppSettings); using (var context = new BatchRepository(Startup.AppSettings)) { await context.BulkInsertAsync(bulkItems_completed, options => { options.BatchSize = BatchSize; }); Context.IncrementCounter("akka.custom.received1", bulkItems_completed.Count); } } |
참고 : Real time performance counters
Note |
---|
어플리케이션에 클러스터가 이미 구성되었다면, 위방법이 유용할수 있지만 위 문제를 해결하기위해 클러스터를 구성하는것은 추천드리지 않습니다. 클러스터로 구성이 안되어있고, 분산된 데이터를 모으는 방법은 카프카를 통해 처리하는것을 권장합니다. |
연관 코드들:
- 배치처리를 포함한 싱글톤 액터 : https://github.com/psmon/AkkaForNetCore/blob/master/AkkaNetCore/Actors/Study/SingleToneActor.cs
- FSM기능을 가진 배치처리 액터 : https://github.com/psmon/AkkaForNetCore/blob/master/AkkaNetCore/Actors/Utils/BatchActor.cs
- 싱글톤 액터 생성하기 : https://github.com/psmon/AkkaForNetCore/blob/025e04a74dba7389cc7675ebaccd403d959a129b/AkkaNetCore/Startup.cs#L184
- 클러스터 설정 : https://github.com/psmon/AkkaForNetCore/blob/master/AkkaNetCore/akka.Development.conf
- 벌크 Insert : https://entityframeworkcore.com/saving-data-bulk-insert
...