Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 액터모델은 기본적으로 순차처리를 보장하는 메일박스 큐를 하나 가지고 있지만~ helloLimitSource  와같이 커스텀화된 큐를 생성하고 보유할수도 있습니다. 액터모델에서 AkkaStream이 지원하는 BackPressure 큐를 가질수 있습니다.
  • 이벤트의 블락없이 TPS를 조절할수 있다란 점은 유용하고 강력한 아이디어입니다.

...


...

코드 설명 by GPT

HelloStateActor

...

설명

...

AkkaStream과

...

BackPresure

...

개념을

...

함께

...

설명

...

(

...

한글로

...

)

...

HelloStateActor는

...

Akka에서

...

"Hello"

...

상태와

...

관련된

...

다양한

...

명령을

...

처리하는

...

액터입니다.

...

...

액터는

...

Akka

...

Streams를

...

사용하여

...

메시지의

...

흐름을

...

관리하며,

...

특히

...

HelloLimit

...

메시지의

...

처리

...

속도를

...

제한합니다.

...

주요

...

구성

...

요소는

...

다음과

...

같습니다:

...

 

...


명령:

...

액터가

...

처리할

...

...

있는

...

명령을

...

정의합니다.

...

예를

...

들어,

...

Hello,

...

GetHelloCount,

...

ChangeState,

...

HelloLimit

...

등이

...

있습니다.

...

응답:

...

액터가

...

반환할

...

...

있는

...

응답을

...

정의합니다.

...

예를

...

들어,

...

HelloResponse,

...

HelloCountResponse

...

등이

...

있습니다.

...

상태:

...

액터의

...

상태를

...

나타내는

...

열거형입니다

...

(HAPPY

...

또는

...

ANGRY).

...

동작:

...

액터의

...

동작은

...

createReceive

...

메서드에서

...

정의되며,

...

...

명령을

...

어떻게

...

처리할지

...

지정합니다.

...


Akka

...

Streams와

...

Backpressure

...

Source.queue:

...

스트림

...

외부에서

...

요소를

...

공급할

...

...

있는

...

소스를

...

생성합니다.

...

지정된

...

크기와

...

오버플로우

...

전략을

...

가진

...

버퍼를

...

사용합니다.

...

Throttle:

...

스트림을

...

통과하는

...

요소의

...

속도를

...

제한합니다.

...

...

경우,

...

초당

...

3개의

...

메시지를

...

허용합니다.

...

Sink.foreach:

...

스트림의

...

...

요소를

...

소비하고

...

작업을

...

수행합니다.

...

여기서는

...

액터의

...

상태에

...

따라

...

HelloLimit

...

명령을

...

처리합니다.

...

Backpressure:

...

메시지의

...

생산자(액터)가

...

소비자(스트림)를

...

압도하지

...

않도록

...

보장합니다.

...

버퍼가

...

가득

...

차면

...

생산자는

...

속도가

...

느려지거나

...

소비자가

...

따라잡을

...

때까지

...

일시

...

중지됩니다.

...

HelloStateActor는 Akka Streams를 사용하여 HelloLimit 메시지를 처리하며, 메시지 처리 속도를 제어하는 스로틀링 메커니즘을 사용합니다. 이를 통해 액터가 메시지를 제어된 속도로 처리하여 과부하를 방지합니다.



검증코드

측정하지 못하면 코드개선을 할수 없습니다. 유실검사를 포함 최종 수신 TPS를 검사할수 있습니다. 오늘날의 컴퓨팅은 속도가 충분히 빠르기 때문에 많은것을 한꺼번에 처리하는 동시처리량도 중요하지만 최종 소비과정에서 IO의 속도를 고려 처리량을 제어하는 기능도 중요합니다.

...