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