SlideShare a Scribd company logo
1 of 10
Apache Thrift
Nội dung chính
 0 – Apache Thrift là gì.
 1 – Tại sao lại chọn apache thrift.
 2 – Cách thức hoạt động của apache thrift
 3 – Hướng dẫn sử dụng
 4 – Ví dụ minh họa
0 – Apache Thrift là gì
 0.1 – Apache Thrift được tạo bởi facebook vào tháng 8 năm 2007
 0.2 – Nó được tạo ra với mục đích loại bỏ rào cản về ngôn ngữ giữa client và
server và có khả năng mở rộng.
 0.3 – Apache Thrift là một framework, cho phép tạo ra các interface giao tiếp giữa các ứng
dụng viết bằng các ngôn ngữ khác nhau: C++, Java, Python, PHP, Ruby, Erlang, Perl,
Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, Ocaml, Delphi
 0.4 – Apache Thrift gồm 2 phần
– Trình biên dịch Apache Thrift: Apache Thrift cho phép người dùng định nghĩa các kiểu
dữ liệu, service interface trong một file thrift. Từ đây, trình biên dịch tạo nên các đoạn mã
tương ứng với ngôn ngữ được chỉ định.
– Thư viện Apache Thrift: cung cấp các hàm, đối tượng cần để tạo kết nối, trao đổi dữ liệu
giữa ứng dụng server và ứng dụng client.
 Facebook
 Cassandra project
 Hadoop supports access to its HDFS API through Thrift bindings
 HBase leverages Thrift for a cross-language API
 Hypertable leverages Thrift for a cross-language API since v0.9.1.0a
 LastFM
 DoAT
 ThriftDB
 Scribe
 Evernote uses Thrift for its public API.
 Junkdepot
1 – Tại sao lại chọn Apache Thrift
 Là một IDL (Interface definition language).
 Giao tiếp dưới dạng nhị phân (Binary protocol).
 Hỗ trợ các ngôn ngữ thông dụng hiện nay.
 Cung cấp các stack cho các RPC (Remote procedure call).
 Cho phép chạy blocking và non-blocking
2 – Cách thức hoạt động
3 – Hướng dẫn sử dụng
 3.1 – Cài đặt apache thrift
 3.2 – Tạo file thrift.
namespace java com.myFirstServer.thrift
typedef i64 Timestamp
service TimeServer {
Timestamp time()
}.
 3.3 – Gen thư viện
thrift –gen <language> <dir file>
4 – Ví dụ minh họa

More Related Content

What's hot

Cai dat squid proxy trong suot
Cai dat  squid proxy trong suotCai dat  squid proxy trong suot
Cai dat squid proxy trong suotTHT
 
Dịch vụ squid server
Dịch vụ squid serverDịch vụ squid server
Dịch vụ squid serverTan Phat Phung
 
Học lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việtHọc lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việtkentvu
 
Dos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comDos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comphanleson
 
Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)Quân Quạt Mo
 
Postfix Dovecot CentOS 6.5
Postfix Dovecot CentOS 6.5Postfix Dovecot CentOS 6.5
Postfix Dovecot CentOS 6.5thienma217
 
Xây dựng mail server với postfix
Xây dựng mail server với postfixXây dựng mail server với postfix
Xây dựng mail server với postfixHiệp Mông Chí
 
Cài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-AthenaCài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-AthenaHoàng Phúc Phạm
 
Run Openstack with SSL
Run Openstack with SSLRun Openstack with SSL
Run Openstack with SSLLam To
 
13 samba nfs server
13  samba nfs server13  samba nfs server
13 samba nfs serverCơn Gió
 
Lập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnLập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnSon Nguyen
 
Hướng dẫn đổi tên máy domain controller
Hướng dẫn đổi tên máy domain controllerHướng dẫn đổi tên máy domain controller
Hướng dẫn đổi tên máy domain controllerlaonap166
 
Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Son Giap
 

What's hot (17)

Cai dat squid proxy trong suot
Cai dat  squid proxy trong suotCai dat  squid proxy trong suot
Cai dat squid proxy trong suot
 
Dịch vụ squid server
Dịch vụ squid serverDịch vụ squid server
Dịch vụ squid server
 
Scaling php
Scaling phpScaling php
Scaling php
 
Học lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việtHọc lập trình php bằng tiếng việt
Học lập trình php bằng tiếng việt
 
Dos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comDos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.com
 
Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)Báo cáo thực tập tuần - VPS (slide)
Báo cáo thực tập tuần - VPS (slide)
 
Báo cáo tuần đồ án
Báo cáo tuần đồ ánBáo cáo tuần đồ án
Báo cáo tuần đồ án
 
Postfix Dovecot CentOS 6.5
Postfix Dovecot CentOS 6.5Postfix Dovecot CentOS 6.5
Postfix Dovecot CentOS 6.5
 
Xây dựng mail server với postfix
Xây dựng mail server với postfixXây dựng mail server với postfix
Xây dựng mail server với postfix
 
Dsd05 02a-xml-rpca
Dsd05 02a-xml-rpcaDsd05 02a-xml-rpca
Dsd05 02a-xml-rpca
 
Cài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-AthenaCài đặt web server (linux)-Pham Hoang Phuc-Athena
Cài đặt web server (linux)-Pham Hoang Phuc-Athena
 
Run Openstack with SSL
Run Openstack with SSLRun Openstack with SSL
Run Openstack with SSL
 
Lab 11 ftp server
Lab 11 ftp server  Lab 11 ftp server
Lab 11 ftp server
 
13 samba nfs server
13  samba nfs server13  samba nfs server
13 samba nfs server
 
Lập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biếnLập trình web với các công nghệ phổ biến
Lập trình web với các công nghệ phổ biến
 
Hướng dẫn đổi tên máy domain controller
Hướng dẫn đổi tên máy domain controllerHướng dẫn đổi tên máy domain controller
Hướng dẫn đổi tên máy domain controller
 
Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879
 

Viewers also liked

Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureAlvaro Videla
 
Sam noble museum pictures
Sam noble museum pictures Sam noble museum pictures
Sam noble museum pictures Sarahtownsend30
 
Descriptive text
Descriptive textDescriptive text
Descriptive textsariindahsn
 
Step 1 Empathy INF GA 01
Step 1 Empathy INF GA 01Step 1 Empathy INF GA 01
Step 1 Empathy INF GA 01sesevh
 
It v deyatelnosti_psikhologa_praktika_povysheni
It v deyatelnosti_psikhologa_praktika_povysheniIt v deyatelnosti_psikhologa_praktika_povysheni
It v deyatelnosti_psikhologa_praktika_povysheniIlya Perminov
 
абстракционизм
абстракционизмабстракционизм
абстракционизмzannaliza
 
Elementos finales de control
Elementos finales de controlElementos finales de control
Elementos finales de controldaniel_zg
 
Детский центр на Опарина 4
Детский центр на Опарина 4Детский центр на Опарина 4
Детский центр на Опарина 4damnedney
 
Revised comaprison chapter 33
Revised comaprison chapter 33Revised comaprison chapter 33
Revised comaprison chapter 33Isai Serrano
 
CURRICULUM VITAE T FIDLER
CURRICULUM VITAE T FIDLERCURRICULUM VITAE T FIDLER
CURRICULUM VITAE T FIDLERTony Fidler
 
Nguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quên
Nguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quênNguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quên
Nguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quêndavina566
 
Conscious Leadership In Action: What Is It And Why Should I Care?
Conscious Leadership In Action: What Is It And Why Should I Care?Conscious Leadership In Action: What Is It And Why Should I Care?
Conscious Leadership In Action: What Is It And Why Should I Care?Runa Bouius
 

Viewers also liked (17)

Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
 
KELEVRAGAMING
KELEVRAGAMINGKELEVRAGAMING
KELEVRAGAMING
 
Ebbpa3 b ch17
Ebbpa3 b   ch17Ebbpa3 b   ch17
Ebbpa3 b ch17
 
Sam noble museum pictures
Sam noble museum pictures Sam noble museum pictures
Sam noble museum pictures
 
Jihadismo in Libia_Full Version
Jihadismo in Libia_Full VersionJihadismo in Libia_Full Version
Jihadismo in Libia_Full Version
 
NickWills 1
NickWills 1NickWills 1
NickWills 1
 
Descriptive text
Descriptive textDescriptive text
Descriptive text
 
Step 1 Empathy INF GA 01
Step 1 Empathy INF GA 01Step 1 Empathy INF GA 01
Step 1 Empathy INF GA 01
 
It v deyatelnosti_psikhologa_praktika_povysheni
It v deyatelnosti_psikhologa_praktika_povysheniIt v deyatelnosti_psikhologa_praktika_povysheni
It v deyatelnosti_psikhologa_praktika_povysheni
 
абстракционизм
абстракционизмабстракционизм
абстракционизм
 
Elementos finales de control
Elementos finales de controlElementos finales de control
Elementos finales de control
 
Детский центр на Опарина 4
Детский центр на Опарина 4Детский центр на Опарина 4
Детский центр на Опарина 4
 
Revised comaprison chapter 33
Revised comaprison chapter 33Revised comaprison chapter 33
Revised comaprison chapter 33
 
CURRICULUM VITAE T FIDLER
CURRICULUM VITAE T FIDLERCURRICULUM VITAE T FIDLER
CURRICULUM VITAE T FIDLER
 
Nguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quên
Nguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quênNguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quên
Nguy cơ mất trí nhớ, Alzheimer do đãng trí, hay quên
 
Cv
CvCv
Cv
 
Conscious Leadership In Action: What Is It And Why Should I Care?
Conscious Leadership In Action: What Is It And Why Should I Care?Conscious Leadership In Action: What Is It And Why Should I Care?
Conscious Leadership In Action: What Is It And Why Should I Care?
 

Similar to Apache thrift

Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake phplaonap166
 
Giao trinh-php
Giao trinh-phpGiao trinh-php
Giao trinh-phphieusy
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gìHLV
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gìHLV
 
Laravel
LaravelLaravel
LaravelHoc Vu
 
Software Stack là gì.pdf
Software Stack là gì.pdfSoftware Stack là gì.pdf
Software Stack là gì.pdfGrowup Work
 
Hướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPHướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPNguyễn Tuấn Quỳnh
 
php với oracle database
php với oracle databasephp với oracle database
php với oracle databaseNgo Trung
 
Ltw0 baimodau
Ltw0 baimodauLtw0 baimodau
Ltw0 baimodauHoa Dại
 
Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)Duy Lê Văn
 
16 ldap server
16  ldap server16  ldap server
16 ldap serverCơn Gió
 
Ldap introduce
Ldap introduceLdap introduce
Ldap introducelaonap166
 
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Son Le
 
Buffer overflow(bao cao)
Buffer overflow(bao cao)Buffer overflow(bao cao)
Buffer overflow(bao cao)phanleson
 

Similar to Apache thrift (20)

Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
Linux+03
Linux+03Linux+03
Linux+03
 
Giao trinh-php
Giao trinh-phpGiao trinh-php
Giao trinh-php
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gì
 
Hadoop là gì
Hadoop là gìHadoop là gì
Hadoop là gì
 
Map reduce hdfs
Map reduce hdfsMap reduce hdfs
Map reduce hdfs
 
Laravel
LaravelLaravel
Laravel
 
07 web course 1 php co ban
07 web course   1 php co ban07 web course   1 php co ban
07 web course 1 php co ban
 
Software Stack là gì.pdf
Software Stack là gì.pdfSoftware Stack là gì.pdf
Software Stack là gì.pdf
 
Hướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHPHướng dẫn lập trình web với PHP
Hướng dẫn lập trình web với PHP
 
php với oracle database
php với oracle databasephp với oracle database
php với oracle database
 
Ltw0 baimodau
Ltw0 baimodauLtw0 baimodau
Ltw0 baimodau
 
Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)
 
16 ldap server
16  ldap server16  ldap server
16 ldap server
 
Ldap introduce
Ldap introduceLdap introduce
Ldap introduce
 
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
 
Buffer overflow(bao cao)
Buffer overflow(bao cao)Buffer overflow(bao cao)
Buffer overflow(bao cao)
 
Python
PythonPython
Python
 
Gt java080102005
Gt java080102005Gt java080102005
Gt java080102005
 
Vps server internet
Vps server internetVps server internet
Vps server internet
 

Apache thrift

  • 2. Nội dung chính  0 – Apache Thrift là gì.  1 – Tại sao lại chọn apache thrift.  2 – Cách thức hoạt động của apache thrift  3 – Hướng dẫn sử dụng  4 – Ví dụ minh họa
  • 3. 0 – Apache Thrift là gì  0.1 – Apache Thrift được tạo bởi facebook vào tháng 8 năm 2007  0.2 – Nó được tạo ra với mục đích loại bỏ rào cản về ngôn ngữ giữa client và server và có khả năng mở rộng.  0.3 – Apache Thrift là một framework, cho phép tạo ra các interface giao tiếp giữa các ứng dụng viết bằng các ngôn ngữ khác nhau: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, Ocaml, Delphi  0.4 – Apache Thrift gồm 2 phần – Trình biên dịch Apache Thrift: Apache Thrift cho phép người dùng định nghĩa các kiểu dữ liệu, service interface trong một file thrift. Từ đây, trình biên dịch tạo nên các đoạn mã tương ứng với ngôn ngữ được chỉ định. – Thư viện Apache Thrift: cung cấp các hàm, đối tượng cần để tạo kết nối, trao đổi dữ liệu giữa ứng dụng server và ứng dụng client.
  • 4.  Facebook  Cassandra project  Hadoop supports access to its HDFS API through Thrift bindings  HBase leverages Thrift for a cross-language API  Hypertable leverages Thrift for a cross-language API since v0.9.1.0a  LastFM  DoAT  ThriftDB  Scribe  Evernote uses Thrift for its public API.  Junkdepot
  • 5. 1 – Tại sao lại chọn Apache Thrift  Là một IDL (Interface definition language).  Giao tiếp dưới dạng nhị phân (Binary protocol).  Hỗ trợ các ngôn ngữ thông dụng hiện nay.  Cung cấp các stack cho các RPC (Remote procedure call).  Cho phép chạy blocking và non-blocking
  • 6.
  • 7.
  • 8. 2 – Cách thức hoạt động
  • 9. 3 – Hướng dẫn sử dụng  3.1 – Cài đặt apache thrift  3.2 – Tạo file thrift. namespace java com.myFirstServer.thrift typedef i64 Timestamp service TimeServer { Timestamp time() }.  3.3 – Gen thư viện thrift –gen <language> <dir file>
  • 10. 4 – Ví dụ minh họa