SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
맛만 보자 Finagle이란? 
Jeff Lee
변해가는 주변 환경 
멀티코어 
CPU 클럭 상승의 한계 
분산환경 
ScaleUp의 한계 
클라우드 컴퓨팅 활성화
현재 최선의 방법
Actor Model 
다른 액터에 한정된 개수의 메세지를 보낼 수 있다. 
유한한 개수의 액터를 만들어 낼 수 있다. 
다른 액터가 받을 메세지에 수반될 행동(behavior)을 지정 할 수 
있다. 
이런 일들이 동시적으로 진행되는데 있어 미리 정해진 순서는 없 
다. 
- 칼 휴이트(1973)
Actor Model 
현실에 액터(사람)를 상상하면 이해하기 편하다. 
- 사람은 생각을 공유 못하고 전자우편으로 소통한다. 
- 액터는 이름, 행동, 의사소통으로 구성 
Message passing 
No shared memory
Actor Model
Twitter Finagle 
Finagle[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 protocols 
HTTP 
Memcached 
Redis 
Protobuf 
Thrift 
MySQL 
mDNS...
Twitter Finagle - 서비스 구조
Apache Thrift 
framework, 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 GitHub 
https://github.com/twitter/finagle 
Finagle Guide 
http://twitter.github.io/finagle/guide/index.html 
Scala School - 피네이글(Finagle) 소개 
https://twitter.github.io/scala_school/ko/finagle.html 
SOA with Thrift and Finagle 
http://www.slideshare.net/bancek/soa-with-thrift-and-finagle

Más contenido relacionado

Destacado

Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise Jesus Rodriguez
 
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416Chicago Hadoop Users Group
 
Protobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-KitProtobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-KitManfred Touron
 
OpenFest 2016 - Open Microservice Architecture
OpenFest 2016 - Open Microservice ArchitectureOpenFest 2016 - Open Microservice Architecture
OpenFest 2016 - Open Microservice ArchitectureNikolay Stoitsev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2eleksdev
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure callSunita Sahu
 
HTTP2 and gRPC
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPCGuo Jing
 
아파치 쓰리프트 (Apache Thrift)
아파치 쓰리프트 (Apache Thrift) 아파치 쓰리프트 (Apache Thrift)
아파치 쓰리프트 (Apache Thrift) Jin wook
 
Docker.소개.30 m
Docker.소개.30 mDocker.소개.30 m
Docker.소개.30 mWonchang Song
 
Building High Performance APIs In Go Using gRPC And Protocol Buffers
Building High Performance APIs In Go Using gRPC And Protocol BuffersBuilding High Performance APIs In Go Using gRPC And Protocol Buffers
Building High Performance APIs In Go Using gRPC And Protocol BuffersShiju Varghese
 
함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개DongHee Kim
 
Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때JeongHun Byeon
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개Wonchang Song
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure CallAbdelrahman Al-Ogail
 

Destacado (20)

java thrift
java thriftjava thrift
java thrift
 
Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise
 
RPC protocols
RPC protocolsRPC protocols
RPC protocols
 
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416
 
Protobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-KitProtobuf & Code Generation + Go-Kit
Protobuf & Code Generation + Go-Kit
 
OpenFest 2016 - Open Microservice Architecture
OpenFest 2016 - Open Microservice ArchitectureOpenFest 2016 - Open Microservice Architecture
OpenFest 2016 - Open Microservice Architecture
 
3 avro hug-2010-07-21
3 avro hug-2010-07-213 avro hug-2010-07-21
3 avro hug-2010-07-21
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
 
HTTP2 and gRPC
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPC
 
아파치 쓰리프트 (Apache Thrift)
아파치 쓰리프트 (Apache Thrift) 아파치 쓰리프트 (Apache Thrift)
아파치 쓰리프트 (Apache Thrift)
 
Docker.소개.30 m
Docker.소개.30 mDocker.소개.30 m
Docker.소개.30 m
 
Building High Performance APIs In Go Using gRPC And Protocol Buffers
Building High Performance APIs In Go Using gRPC And Protocol BuffersBuilding High Performance APIs In Go Using gRPC And Protocol Buffers
Building High Performance APIs In Go Using gRPC And Protocol Buffers
 
Druid @ branch
Druid @ branch Druid @ branch
Druid @ branch
 
함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개
 
Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때Spring Scala : 스프링이 스칼라를 만났을 때
Spring Scala : 스프링이 스칼라를 만났을 때
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure Call
 
3 apache-avro
3 apache-avro3 apache-avro
3 apache-avro
 

Más de jbugkorea

Hawkular overview
Hawkular overviewHawkular overview
Hawkular overviewjbugkorea
 
미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기jbugkorea
 
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링jbugkorea
 
JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개jbugkorea
 
Micro Service Architecture 탐방기
Micro Service Architecture 탐방기Micro Service Architecture 탐방기
Micro Service Architecture 탐방기jbugkorea
 
Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료jbugkorea
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기jbugkorea
 
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축jbugkorea
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트jbugkorea
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertowjbugkorea
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기jbugkorea
 
JBoss Community Introduction
JBoss Community IntroductionJBoss Community Introduction
JBoss Community Introductionjbugkorea
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기jbugkorea
 
Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현jbugkorea
 
Infinispan Data Grid Platform
Infinispan Data Grid PlatformInfinispan Data Grid Platform
Infinispan Data Grid Platformjbugkorea
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelismjbugkorea
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platformjbugkorea
 

Más de jbugkorea (17)

Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기
 
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
 
JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개
 
Micro Service Architecture 탐방기
Micro Service Architecture 탐방기Micro Service Architecture 탐방기
Micro Service Architecture 탐방기
 
Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료Jbug 발표 msa탐방기_공유자료
Jbug 발표 msa탐방기_공유자료
 
Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기Micro Service Architecture(MSA) 탐방기
Micro Service Architecture(MSA) 탐방기
 
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertow
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기
 
JBoss Community Introduction
JBoss Community IntroductionJBoss Community Introduction
JBoss Community Introduction
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기
 
Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현
 
Infinispan Data Grid Platform
Infinispan Data Grid PlatformInfinispan Data Grid Platform
Infinispan Data Grid Platform
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelism
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
 

맛만 보자 Finagle이란

  • 2. 변해가는 주변 환경 멀티코어 CPU 클럭 상승의 한계 분산환경 ScaleUp의 한계 클라우드 컴퓨팅 활성화
  • 4. Actor Model 다른 액터에 한정된 개수의 메세지를 보낼 수 있다. 유한한 개수의 액터를 만들어 낼 수 있다. 다른 액터가 받을 메세지에 수반될 행동(behavior)을 지정 할 수 있다. 이런 일들이 동시적으로 진행되는데 있어 미리 정해진 순서는 없 다. - 칼 휴이트(1973)
  • 5. Actor Model 현실에 액터(사람)를 상상하면 이해하기 편하다. - 사람은 생각을 공유 못하고 전자우편으로 소통한다. - 액터는 이름, 행동, 의사소통으로 구성 Message passing No shared memory
  • 7. Twitter Finagle Finagle[finéigl] - 피네이글 extensible asynchronous (reactive) RPC for the JVM uniform client and server APIs for several protocols high performance and concurrency written in Scala
  • 8. Multiple protocols HTTP Memcached Redis Protobuf Thrift MySQL mDNS...
  • 9. Twitter Finagle - 서비스 구조
  • 10. Apache Thrift framework, 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
  • 16. 참고자료. Finagle GitHub https://github.com/twitter/finagle Finagle Guide http://twitter.github.io/finagle/guide/index.html Scala School - 피네이글(Finagle) 소개 https://twitter.github.io/scala_school/ko/finagle.html SOA with Thrift and Finagle http://www.slideshare.net/bancek/soa-with-thrift-and-finagle