2009-10-08 6 views
2

스칼라의 원격 액터를 사용하고 있지만 왕복 시간 (단순한 메시지조차도)은 80ms입니다. 아마도 TCP/IP Nagle 알고리즘을 사용하지 않는 소켓 (TCP_NODELAY라고도 함)이 없거나 적어도 Java RMI에 대한 경험이있는 사람이 나에게 알려주는 것.스칼라 원격 액터의 TCP_NODELAY 설정을 제어하는 ​​방법은 무엇입니까?

내가 클라이언트에서하고있어 모든 기본 소켓에서 얻을 그것에 java.net.Socket.setTcpNoDelay()를 호출하는 몇 가지 방법이 있나요 원격 배우에 대한 링크를

val server=select(Node("127.0.0.1",12111),'server) 

되어 얻으려면?

답변

3

Scala 소스 코드를 수정하지 않고 기본 Socket에서 setTcpNoDelay()를 호출해야하는 경우 두 가지 방법이 있습니다.

  1. 자신의 SocketImplFactory 구현 : 당신은 사소한 아닌 자신의 SocketImpl를 구현해야합니다 그것이 공개 API가 아니기 때문에 그냥 기존의 SocketImpl를 포장 할 수 없기 때문에이 솔루션이 안됐다. 여기서 내가 말할 수있는 것은 SocketImplFactory를 처음부터 디자인 한 사람이라면 그것을 비난하는 것입니다.

  2. 는 사용 AOP는

은 BTW, 나는이 문제를 해결하는 가장 좋은 방법은 스칼라 원격 배우 코드를 수정하고 패치를 제출하는 것입니다 생각합니다.

관련 문제