프로그래밍/Akka.Net 8

[Akka.NET] Akka Message 수신 오류

akka 메시지 큐 오버플로우 Inference Window Actor에서 Message Queue가 꽉 차서 수신 못했을 가능성 높습니다. Message Buffer Size `send-buffer-size`와 `receive-buffer-size`가 너무 작은 경우에는 메시지 송수신에 문제가 발생할 수 있습니다. 이 옵션들은 TCP 송수신 버퍼의 크기를 제어하며, 충분히 큰 크기로 설정되어야 합니다. 그렇지 않으면 다음과 같은 문제가 발생할 수 있습니다 1.송신 부분에서의 문제 Send buffer size가 작으면, 송신측에서 메시지를 버퍼에 쓰는 속도가 느려질 수 있습니다. 이는 메시지를 네트워크로 전송하는 속도를 제한하고, 따라서 메시지 전송이 지연될 수 있습니다. 또한 송신 버퍼가 가득 차면 ..

[Akka.NET] Stash

Akka.NET - Stash Stash 기능은 행위자 내에서 메시지를 임시로 저장하고 연기하는 메커니즘을 제공합니다. 이를 통해 액터는 아직 처리할 준비가 되지 않은 들어오는 메시지를 일시적으로 따로 보관하고 액터가 적절한 상태에 있을 때 나중에 검색할 수 있습니다. Stash 기능은 메시지 처리 순서나 액터의 동작을 제어해야 하는 시나리오에서 유용합니다. 이 예제에서 MyActor에는 Ready() 및 Processing()의 두 가지 상태가 있습니다. 처음에는 Ready() 상태에서 시작합니다. Ready() 상태에서는 StartProcessing에서 메시지를 즉시 처리하거나, 나중에 처리하기 위해 DelayProcessing에서 메시지를 숨길 수 있습니다. DelayProcessing 메시지가 수..

[Akka.NET] Receive()와 ReceiveAny()

Akka.NET - Receive() Receive() 메서드는 알려진 메시지 유형에 대한 특정 메시지 처리기를 정의하는 데 사용됩니다. 특정 메시지 유형과 일치하는 일련의 case 문을 제공하고 각 사례에 해당하는 작업 또는 동작을 지정합니다. 메시지가 수신되면 Akka.NET은 메시지 유형을 정의된 사례와 일치시키고 적절한 핸들러를 호출합니다. 이 예제에서 액터에는 Receive()를 사용하여 정의된 세 가지 특정 메시지 핸들러가 있습니다. 특정 유형의 메시지가 수신되면 해당 핸들러가 호출됩니다. Receive() 샘플코드 Receive(message => { // Handle string messages }); Receive(message => { // Handle int messages }); R..

[Akka.Net] MailBox

참고 : https://getakka.net/articles/actors/mailboxes.html Mailbox Akka.NET에서 Mailbox는 액터를 대상으로 하는 메시지를 보관합니다. 액터에게 메시지를 보낼 때 메시지는 액터에게 직접 전달되지 않고, 해당 액터의 Mailbox로 우선 이동 후 액터가 처리할 시간이 있을 때 메시지를 처리합니다. Mailbox는 메시지 큐로 설명이 가능합니다. Mailbox에 들어온 메시지는 보통 액터에서 순서대로 처리합니다. Priority Mailbox 하지만 처리 순서를 변경할 수 있는 Priority Mailbox가 있습니다. 일반적으로 모든 액터는 Mailbox가 있지만, 필수 사항은 아닙니다. 라우터(Router)에 속한 라우티(Routees)들은 하나의..

[Akka.Net] Props 이용한 Actor 생성

Prop Props는 액터 생성을 위한 옵션을 지정하는 구성 클래스로, 관련 배포 정보를 포함하여 액터를 생성하기 위한 변경 불가능하고 자유롭게 공유 가능한 레시피로 생각하십시오. 액터는 ActorSystem 및 ActorContext에서 사용할 수 있는 ActorOf라는 팩토리 메서드에 Props 인스턴스를 전달하여 생성됩니다. ActorOf에 대한 호출은 IActorRef의 인스턴스를 반환합니다. using Akka.Actor; using System; namespace AkkaNET_Actor_Tell { class Program { static ActorSystem system = ActorSystem.Create("actorSystem"); static void Main(string[] args..

[Akka.Net] Actor 생성

참조 https://getakka.net/articles/actors/receive-actor-api.html Akka.NET에서 액터를 생성하면 항상 특정 부모에 속합니다. 이것은 액터가 항상 트리로 구성된다는 것을 의미합니다. 일반적으로 액터 생성은 다른 액터 내부에서만 발생할 수 있습니다. 이 '생성자' 액터는 새로 생성된 자식 액터의 부모가 됩니다. 그러면 처음으로 만든 액터의 부모가 누구냐고 물을 수 있습니다. 최상위 액터를 생성하려면 먼저 액터 시스템을 초기화해야 합니다. 이것을 객체 시스템이라고 합시다. 그 다음에는 새로 생성된 액터에 대한 참조를 반환하는 System.ActorOf() 호출이 이어집니다. Message 클래스 생성 액터에게 무언가를 하라고 지시하는 방법은 메시..