맛만 보자 Finagle이란?Jeff Lee
변해가는 주변 환경
멀티코어
CPU 클럭 상승의 한계분산환경
ScaleUp의 한계
클라우드 컴퓨팅 활성화
현재 최선의 방법
Actor Model다른 액터에 한정된 개수의 메세지를 보낼 수 있다. 유한한 개수의 액터를 만들어 낼 수 있다. 다른 액터가 받을 메세지에 수반될 행동(behavior)을 지정 할 수 있다. 이런 일들이 동시적으로 진행되는데 있어 미리 정해진 순서는 없다.
- 칼 휴이트(1973)
Actor Model
현실에 액터(사람)를 상상하면 이해하기 편하다.- 사람은 생각을 공유 못하고 전자우편으로 소통한다.
- 액터는 이름, 행동, 의사소통으로 구성
Message passingNo shared memory
Actor Model
Twitter FinagleFinagle[finéigl] - 피네이글
extensible asynchronous (reactive) RPC for the JVM
uniform client and server APIs for several protocols
high performance and concurrency
written in Scala
Multiple protocolsHTTPMemcachedRedisProtobufThriftMySQLmDNS...
Twitter Finagle - 서비스 구조
Apache Thriftframework, for scalable cross-language services development
code generation engine
C++, Java, Python, PHP, Ruby, Erlang,Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml,Delphi …
Developed by Facebook, opensourced in April 2007
ping.thrift
scala server
scala server
scala client
scala client
참고자료.Finagle GitHubhttps://github.com/twitter/finagle
Finagle Guidehttp://twitter.github.io/finagle/guide/index.html
Scala School - 피네이글(Finagle) 소개https://twitter.github.io/scala_school/ko/finagle.html
SOA with Thrift and Finaglehttp://www.slideshare.net/bancek/soa-with-thrift-and-finagle