Thrift vs. Protocol Buffers

Source: Internet
Author: User

Http://incubator.apache.org/thrift/

Http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking

Http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/overview.html

Introduction

Thrift
Yes
Facebook
Is one of the core frameworks, so that systems developed in different development languages can communicate with each other through this framework, similar
Webservice
,
Thrift
It provides almost abnormal efficiency and convenient development.
Webservice
Not comparable. It brings great convenience to distributed development. However, this tool is not perfect.

 

Problem

First, there is quite a few documents, only one
Wiki
The website provides corresponding help. For
Thrift
Promotion is extremely unfavorable.

Second, the framework has some defects.
Thrift
Of
Java
In part, the connection pool is not supported.
RPC
.

For rare documents, you can only use
Thrift
Developers and users provide their own experiences to solve the problem. This requires a process. The connection pool can solve the problem quickly.


The pool is generally used.
Java
Development will surely think
ObjectPool
,
Apache Commons
The project makes great convenience for our development.
Pool
The project is exactly what we implement
Thrift
The foundation of the connection pool is also indispensable.
Spring framework
.

Hrift

Thrift is a scalable cross-language service development software framework. It combines a powerful software stack code generation engine to build services, work efficiently and seamlessly with C +
+, C #, Java, Python, PHP, and Ruby. Thrift was developed by facebook. Now we use thrift as an open source software. Thrift allows you to decide
Defines the data types and service interfaces in a simple definition file. As an input file, the compiler generates code to easily generate a seamless cross-programming language for RPC client and server communication.
Protocol Buffers

Protocol Buffers
Is Google
A data description language developed by the company, similar to XML
It can serialize structured data for data storage and communication protocols. Currently, C ++, JAVA, Python, and other programming languages are supported.
   Why not only XML?
Compared with XML, Protocol buffers has many advantages in serialization of structured data (officially proposed by google ):
· Simpler
· Only 1/10 to 1/3 of the original data description file
· The resolution speed is 20 to 100 times the original speed
· Reduced Ambiguity
· Generated a data category that is easier to use in programming
Google announced it as an open-source project today (July 8), saying many projects that will be open-source in the future will use Protocol Buffers.
# Bk-album-collection-box-1708160 {width: 687px; height: 228px; border-right: 1px solid rgb (198,225,245); border-width: 2px 1px 1px; border-style: solid; border-color: rgb (38,139,215) rgb (198,225,245) rgb (198,225,245); margin-bottom: 30px; overflow: hidden ;}. bacb-head {height: 28px; background-color: rgb (245,251,255); padding-left: 10px; position: relative ;}. bacb-title {font-size: 14px; font-weight: bold; line-height: 28px ;}. bacb-more {text-decoration: none; position: absolute; font-size: 12px; line-height: 1; top: 8px; right: 8px; padding-right: 11px; background: url ("http://img.baidu.com/img/baike/s/arr.gif") no-repeat scroll 54px-22px transparent ;}. bacb-more: hover {text-decoration: none ;}# bacb-left-btn-1708160 ,. bacb-window-outer, # bacb-right-btn-1708160 {float: left;} # bacb-left-btn-1708160, # bacb-right-btn-1708160 {display: block; text-decoration: none; border: 1px solid rgb (255,255,255 ); width: 17px; height: 53px; background: url ("http://img.baidu.com/img/baike/bkalbumbtn.gif") no-repeat scroll 0% 0% transparent; cursor: default;} # bacb-left-btn-1708160 {margin: 59px 3px 0pt 6px; background-position: 3px 16px;} # bacb-right-btn-1708160 {margin: 59px 5px 0pt 6px; background-position:-27px 16px;} # bacb-left-btn-1708160.enable: hover {background-position:-61px 16px; border: 1px solid rgb (221,221,221); cursor: pointer;} # bacb-right-btn-1708160.enable: hover {background-position:-91px 16px; border: 1px solid rgb (221,221,221); cursor: pointer ;}. bacb-window-outer {width: 628px; height: 185px; position: relative; overflow: hidden; margin-top: 15px;} # bacb-window-inner-1708160 {position: absolute; top: 0pt; left: 0pt; padding-left: 6px ;}# bacb-window-inner-1708160. item {float: left; width: 156px; height: 195px ;}# bacb-window-inner-1708160. img {height: 145px; position: relative ;}# bacb-window-inner-1708160. img. b1, # bacb-window-inner-1708160. img. b2, # bacb-window-inner-1708160. img. b3, # bacb-window-inner-1708160. img. img-wrapper {position: absolute; background-color: rgb (255,255,255);} # bacb-window-inner-1708160. img. b1 {left: 0pt; bottom: 0pt; border: 1px solid rgb (205,205,205);} # bacb-window-inner-1708160. img. b2 {left: 3px; bottom: 3px; border: 1px solid rgb (205,205,205);} # bacb-window-inner-1708160. img. b3 {left: 6px; bottom: 6px; border: 1px solid rgb (170,170,170);} # bacb-window-inner-1708160. img. img-wrapper {left: 9px; bottom: 9px; display: block; text-decoration: none; line-height: 1px ;}# bacb-window-inner-1708160. item. desc {text-align: center; font-family:; width: 145px; margin-top: 7px; font-size: 12px; line-height: 1 ;}# bacb-window-inner-1708160. item. count {color: rgb (153,153,153); white-space: nowrap ;}

Entry Atlas
More albums
Additional reading:
  • 1

    Introduction: http://code.google.com/apis/protocolbuffers/docs/overview.html

  • 2

    1: http://blog.donews.com/crackme/archive/2008/07/08/1316981.aspx

  • 3

    Online related 2: http://it.sohu.com/20080708/n258026083.shtml

  • 4

    Example: http://hi.baidu.com/lisl2003/blog/item/dbf0a6efd914333bacafd5ed.html

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.