16
맛만 보자 Finagle이란? Jeff Lee

맛만 보자 Finagle이란

Embed Size (px)

DESCRIPTION

맛만 보자 Finagle이란

Citation preview

Page 1: 맛만 보자 Finagle이란

맛만 보자 Finagle이란?Jeff Lee

Page 2: 맛만 보자 Finagle이란

변해가는 주변 환경

멀티코어

CPU 클럭 상승의 한계분산환경

ScaleUp의 한계

클라우드 컴퓨팅 활성화

Page 3: 맛만 보자 Finagle이란

현재 최선의 방법

Page 4: 맛만 보자 Finagle이란

Actor Model다른 액터에 한정된 개수의 메세지를 보낼 수 있다. 유한한 개수의 액터를 만들어 낼 수 있다. 다른 액터가 받을 메세지에 수반될 행동(behavior)을 지정 할 수 있다. 이런 일들이 동시적으로 진행되는데 있어 미리 정해진 순서는 없다.

- 칼 휴이트(1973)

Page 5: 맛만 보자 Finagle이란

Actor Model

현실에 액터(사람)를 상상하면 이해하기 편하다.- 사람은 생각을 공유 못하고 전자우편으로 소통한다.

- 액터는 이름, 행동, 의사소통으로 구성

Message passingNo shared memory

Page 6: 맛만 보자 Finagle이란

Actor Model

Page 7: 맛만 보자 Finagle이란

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

Page 8: 맛만 보자 Finagle이란

Multiple protocolsHTTPMemcachedRedisProtobufThriftMySQLmDNS...

Page 9: 맛만 보자 Finagle이란

Twitter Finagle - 서비스 구조

Page 10: 맛만 보자 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

Page 11: 맛만 보자 Finagle이란

ping.thrift

Page 12: 맛만 보자 Finagle이란

scala server

Page 13: 맛만 보자 Finagle이란

scala server

Page 14: 맛만 보자 Finagle이란

scala client

Page 15: 맛만 보자 Finagle이란

scala client

Page 16: 맛만 보자 Finagle이란

참고자료.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