Versions Compared

Key

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

...

위와같이 유입에따른 메시지처리능력에 따라 (보통 사용자가 늘어나는 구간을 램프업이라고 합니다.) 

라우티를 동적으로 늘리고 줄일수있으며, AKKA에서 몇가지 유용한 유틸을 제공합니다. - https://doc.akka.io/docs/akka/current/routing.html#dynamically-resizable-pool


커스텀한 라우터 설계

Code Block
languagejava
themeEmacs
public class RedundancyRoutingLogic implements RoutingLogic {
  private final int nbrCopies;
  
  public RedundancyRoutingLogic(int nbrCopies) {
    this.nbrCopies = nbrCopies;  
  }
  RoundRobinRoutingLogic roundRobin = new RoundRobinRoutingLogic();
  
  @Override
  public Routee select(Object message, IndexedSeq<Routee> routees) {
    List<Routee> targets = new ArrayList<Routee>();
    for (int i = 0; i < nbrCopies; i++) {
      targets.add(roundRobin.select(message, routees));
    }
    return new SeveralRoutees(targets);
  }
}

...

라우터에 병렬처리에 관련된 능력을 지정하고자할때 설정될수 있습니다.

최대 5개의 스레드를 동시에 사용하겠다고 하는 설정사항입니다.

성능을 고려하여 이값을 잘 지정하는것은 생각보다 어려운주제이지만, 설정은 쉽습니다.


참고링크: