<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>简单之美 &#187; Tag &#187; Thrift</title>
	<atom:link href="http://shiyanjun.cn/archives/tag/thrift/feed" rel="self" type="application/rss+xml" />
	<link>http://shiyanjun.cn</link>
	<description>简单之美，难得简单，享受简单的唯美。</description>
	<lastBuildDate>Wed, 04 Mar 2026 07:04:53 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.2</generator>
	<item>
		<title>基于C#+Thrift操作HBase实践</title>
		<link>http://shiyanjun.cn/archives/499.html</link>
		<comments>http://shiyanjun.cn/archives/499.html#comments</comments>
		<pubDate>Thu, 07 Nov 2013 09:38:49 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[HBase]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[Thrift]]></category>

		<guid isPermaLink="false">http://shiyanjun.cn/?p=499</guid>
		<description><![CDATA[<p>在基于HBase数据库的开发中，对应Java语言来说，可以直接使用HBase的原生API来操作HBase表数据，当然你要是不嫌麻烦可以使用Thrift客户端Java API，这里有我曾经使用过的 HBase Thrift客户端Java API实践，可以参考。对于具有其他编程语言背景的开发人员，为了获取HBase带来的好处，那么就可以选择使用HBase Thrift客户端对应编程语言的API，来实现与HBase的交互。
这里，我们使用C#客户端来操作HBase。HBase的Thrift接口的定义，可以通过链接http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup看到，我们需要安装Thrift编译器，才能生成HBase跨语言的API，这里，我使用的版本是0.9.0。需要注意的是，一定要保证，安装了某个版本Thrift的Thrift编译器，在导入对应语言库的时候，版本一定要统一，否则就会出现各种各样的问题，因为不同Thrift版本，对应编程语言的库API可能有变化。
首先，下载上面链接的内容，保存为Hbase.thrift。
然后，执行如下命令，生成C#编程语言的HBase Th</p>]]></description>
	<p>在基于HBase数据库的开发中，对应Java语言来说，可以直接使用HBase的原生API来操作HBase表数据，当然你要是不嫌麻烦可以使用Thrift客户端Java API，这里有我曾经使用过的 HBase Thrift客户端Java API实践，可以参考。对于具有其他编程语言背景的开发人员，为了获取HBase带来的好处，那么就可以选择使用HBase Thrift客户端对应编程语言的API，来实现与HBase的交互。
这里，我们使用C#客户端来操作HBase。HBase的Thrift接口的定义，可以通过链接http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup看到，我们需要安装Thrift编译器，才能生成HBase跨语言的API，这里，我使用的版本是0.9.0。需要注意的是，一定要保证，安装了某个版本Thrift的Thrift编译器，在导入对应语言库的时候，版本一定要统一，否则就会出现各种各样的问题，因为不同Thrift版本，对应编程语言的库API可能有变化。
首先，下载上面链接的内容，保存为Hbase.thrift。
然后，执行如下命令，生成C#编程语言的HBase Th</p>			<content:encoded><![CDATA[<p>在基于HBase数据库的开发中，对应Java语言来说，可以直接使用HBase的原生API来操作HBase表数据，当然你要是不嫌麻烦可以使用Thrift客户端Java API，这里有我曾经使用过的 HBase Thrift客户端Java API实践，可以参考。对于具有其他编程语言背景的开发人员，为了获取HBase带来的好处，那么就可以选择使用HBase Thrift客户端对应编程语言的API，来实现与HBase的交互。
这里，我们使用C#客户端来操作HBase。HBase的Thrift接口的定义，可以通过链接http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup看到，我们需要安装Thrift编译器，才能生成HBase跨语言的API，这里，我使用的版本是0.9.0。需要注意的是，一定要保证，安装了某个版本Thrift的Thrift编译器，在导入对应语言库的时候，版本一定要统一，否则就会出现各种各样的问题，因为不同Thrift版本，对应编程语言的库API可能有变化。
首先，下载上面链接的内容，保存为Hbase.thrift。
然后，执行如下命令，生成C#编程语言的HBase Th</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/499.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于Thrift实现跨语言服务</title>
		<link>http://shiyanjun.cn/archives/456.html</link>
		<comments>http://shiyanjun.cn/archives/456.html#comments</comments>
		<pubDate>Fri, 18 Oct 2013 09:26:21 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[Dubbo/Akka/Thrift]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Thrift]]></category>

		<guid isPermaLink="false">http://shiyanjun.cn/?p=456</guid>
		<description><![CDATA[<p>假设，现在我们有这样一个需求：
要通过一个代理平台，将查询请求转发到后端服务器进行查询。后端存在多种查询服务器，查询方式也不同，比如，有基于SQL的关系数据库查询，也有基于搜索引擎Solr的查询。通过代理平台，将
服务暴露给具有任何编程语言技能的开发人员进行调用。
我们可以选择Thrift来定义语言中性的服务接口，然后通过Thrift编译器将定义生成多种编程语言的客户端代码框架，服务器端使用指定语言进行开发，如Java，最后通过连接Thrift服务器来进行查
询调用。
根据我们的需求，后端服务使用Java实现，而外部使用C#进行调用返回结果，再执行进一步的处理。
Thrift服务定义
首先，看一下，我们给出的示例服务定义，文件命名为queryproxy.thrift，内容如下所示：
上面定义的内容的含义如下所示：

QueryType 指定查询类型，包括两种类型：查询Solr服务器，或SQL查询
QueryParams 用来设置请求参数
QueryResult 是返回结果对象，封装了查询结果列表，我们将查询结果以JSON列表形式返回
QueryFailureException 如果查询失败，返回该异常
QueryProxyService </p>]]></description>
	<p>假设，现在我们有这样一个需求：
要通过一个代理平台，将查询请求转发到后端服务器进行查询。后端存在多种查询服务器，查询方式也不同，比如，有基于SQL的关系数据库查询，也有基于搜索引擎Solr的查询。通过代理平台，将
服务暴露给具有任何编程语言技能的开发人员进行调用。
我们可以选择Thrift来定义语言中性的服务接口，然后通过Thrift编译器将定义生成多种编程语言的客户端代码框架，服务器端使用指定语言进行开发，如Java，最后通过连接Thrift服务器来进行查
询调用。
根据我们的需求，后端服务使用Java实现，而外部使用C#进行调用返回结果，再执行进一步的处理。
Thrift服务定义
首先，看一下，我们给出的示例服务定义，文件命名为queryproxy.thrift，内容如下所示：

namespace java org.shirdrn.queryproxy.thrift.protocol
namespace csharp Query.Proxy.Thrift.Protocol
namespace py queryproxy.thrift.protocol

typedef i16 short
typedef i32 int
typedef i64 long

enum QueryType {
     SOLR = 1,
     SQL = 2
}

struct QueryPara</p>			<content:encoded><![CDATA[<p>假设，现在我们有这样一个需求：
要通过一个代理平台，将查询请求转发到后端服务器进行查询。后端存在多种查询服务器，查询方式也不同，比如，有基于SQL的关系数据库查询，也有基于搜索引擎Solr的查询。通过代理平台，将
服务暴露给具有任何编程语言技能的开发人员进行调用。
我们可以选择Thrift来定义语言中性的服务接口，然后通过Thrift编译器将定义生成多种编程语言的客户端代码框架，服务器端使用指定语言进行开发，如Java，最后通过连接Thrift服务器来进行查
询调用。
根据我们的需求，后端服务使用Java实现，而外部使用C#进行调用返回结果，再执行进一步的处理。
Thrift服务定义
首先，看一下，我们给出的示例服务定义，文件命名为queryproxy.thrift，内容如下所示：
上面定义的内容的含义如下所示：

QueryType 指定查询类型，包括两种类型：查询Solr服务器，或SQL查询
QueryParams 用来设置请求参数
QueryResult 是返回结果对象，封装了查询结果列表，我们将查询结果以JSON列表形式返回
QueryFailureException 如果查询失败，返回该异常
QueryProxyService </p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/456.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HBase Thrift客户端Java API实践</title>
		<link>http://shiyanjun.cn/archives/111.html</link>
		<comments>http://shiyanjun.cn/archives/111.html#comments</comments>
		<pubDate>Thu, 22 Aug 2013 15:19:33 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[HBase]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Thrift]]></category>

		<guid isPermaLink="false">http://shirdrn.org/?p=111</guid>
		<description><![CDATA[<p>HBase的Thrift API定义，可以通过链接 http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup看到，我们需要安装Thrift编译器，才能生成HBase跨语言的API。
首先下载上面链接的内容，保存为Hbase.thrift。
然后，执行如下命令，生成不同编程语言的HBase API：
这里，我们基于Java语言，使用HBase 的Thrift 客户端API访问HBase表。事实上，如果使用Java来实现对HBase表的操作，最好是使用HBase的原生API，无论从性能还是便利性方面，都会提供更好的体验。使用Thrift API访问，实际也是在HBase API之上进行了一层封装，可能初次使用Thrift API感觉很别扭，有时候还要参考Thrift服务端的实现代码。
准备工作如下：


下载Thrift软件包，解压缩后，拷贝thrift-0.9.0/lib/java/src下面的代码到工作区（开发工具中）
将上面生成的gen-java目录中代码拷贝到工作区
保证HBase集群正常运行，接着启动HBase的Thrift服务，执行如下命令：


上面，HBase的Thrift服务端口为9090，下面通过Thrift </p>]]></description>
	<p>HBase的Thrift API定义，可以通过链接 http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup看到，我们需要安装Thrift编译器，才能生成HBase跨语言的API。
首先下载上面链接的内容，保存为Hbase.thrift。
然后，执行如下命令，生成不同编程语言的HBase API：

[hadoop@master hbase]$ thrift --gen cpp Hbase.thrift
[hadoop@master hbase]$ thrift --gen java Hbase.thrift
[hadoop@master hbase]$ thrift --gen py Hbase.thrift
[hadoop@master hbase]$ thrift --gen perl Hbase.thrift
[hadoop@master hbase]$ thrift --gen csharp Hbase.thrift
[hadoop@master hbase]$ thrift --gen php Hbase.thrift
[hadoop@master hbase]$ thrift --gen js Hbase.thrift
[hadoop@master hbase]$ thrift --gen go Hbase.thrift
[hadoop@master hbase]$ thrift --gen erl Hbase.thrift
[hadoop@master hbase]$ thrift --gen delphi Hbase.thrift
[hadoop@master hbase]$ thrift --</p>			<content:encoded><![CDATA[<p>HBase的Thrift API定义，可以通过链接 http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup看到，我们需要安装Thrift编译器，才能生成HBase跨语言的API。
首先下载上面链接的内容，保存为Hbase.thrift。
然后，执行如下命令，生成不同编程语言的HBase API：
这里，我们基于Java语言，使用HBase 的Thrift 客户端API访问HBase表。事实上，如果使用Java来实现对HBase表的操作，最好是使用HBase的原生API，无论从性能还是便利性方面，都会提供更好的体验。使用Thrift API访问，实际也是在HBase API之上进行了一层封装，可能初次使用Thrift API感觉很别扭，有时候还要参考Thrift服务端的实现代码。
准备工作如下：


下载Thrift软件包，解压缩后，拷贝thrift-0.9.0/lib/java/src下面的代码到工作区（开发工具中）
将上面生成的gen-java目录中代码拷贝到工作区
保证HBase集群正常运行，接着启动HBase的Thrift服务，执行如下命令：


上面，HBase的Thrift服务端口为9090，下面通过Thrift </p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/111.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CentOS安装和使用Thrift</title>
		<link>http://shiyanjun.cn/archives/107.html</link>
		<comments>http://shiyanjun.cn/archives/107.html#comments</comments>
		<pubDate>Thu, 22 Aug 2013 15:08:23 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[Dubbo/Akka/Thrift]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Thrift]]></category>

		<guid isPermaLink="false">http://shirdrn.org/?p=107</guid>
		<description><![CDATA[<p>Thrift是Apache的一个开源的跨语言服务开发框架，它提供了一个代码生成引擎来构建服务，支持C++，Java，Python，PHP，Ruby，Erlang，Perl，Haskell，C#，Cocoa，JavaScript，Node.js，Smalltalk，OCaml，Delphi等多种编程语言。
一般来说，使用Thrift来开发应用程序，主要建立在两种场景下：

第一，在我们开发过程中，一个比较大的项目需要多个团队进行协作，而每个团队的成员在编程技术方面的技能可能不一定相同，为了实现这种跨语言的开发氛围，使用Thrift来构建服务
第二，企业之间合作，在业务上不可避免出现跨语言的编程环境，使用Thrift可以达到类似Web Services的跨平台的特性

安装配置Thrift
Thrift的编译器使用C++编写的，在安装编译器之前，首先应该保证操作系统基本环境支持C++的编译，安装相关依赖的软件包，如下所示
下载Thrift的软件包，并解压缩：
配置、编译、安装Thrift，如下所示：
如果在配置的时候总是报如下错误：
如果需要的话，可以运行测试用例：
安装成功以后，可以输入如下命令行进行验证：
使用Thrift
我们直接使用Thrift官网提供的简</p>]]></description>
	<p>Thrift是Apache的一个开源的跨语言服务开发框架，它提供了一个代码生成引擎来构建服务，支持C++，Java，Python，PHP，Ruby，Erlang，Perl，Haskell，C#，Cocoa，JavaScript，Node.js，Smalltalk，OCaml，Delphi等多种编程语言。
一般来说，使用Thrift来开发应用程序，主要建立在两种场景下：

第一，在我们开发过程中，一个比较大的项目需要多个团队进行协作，而每个团队的成员在编程技术方面的技能可能不一定相同，为了实现这种跨语言的开发氛围，使用Thrift来构建服务
第二，企业之间合作，在业务上不可避免出现跨语言的编程环境，使用Thrift可以达到类似Web Services的跨平台的特性

安装配置Thrift
Thrift的编译器使用C++编写的，在安装编译器之前，首先应该保证操作系统基本环境支持C++的编译，安装相关依赖的软件包，如下所示

sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel

下载Thrift的软件包，并解压缩：

wget http://mirrors.cnnic.cn/apache/thri</p>			<content:encoded><![CDATA[<p>Thrift是Apache的一个开源的跨语言服务开发框架，它提供了一个代码生成引擎来构建服务，支持C++，Java，Python，PHP，Ruby，Erlang，Perl，Haskell，C#，Cocoa，JavaScript，Node.js，Smalltalk，OCaml，Delphi等多种编程语言。
一般来说，使用Thrift来开发应用程序，主要建立在两种场景下：

第一，在我们开发过程中，一个比较大的项目需要多个团队进行协作，而每个团队的成员在编程技术方面的技能可能不一定相同，为了实现这种跨语言的开发氛围，使用Thrift来构建服务
第二，企业之间合作，在业务上不可避免出现跨语言的编程环境，使用Thrift可以达到类似Web Services的跨平台的特性

安装配置Thrift
Thrift的编译器使用C++编写的，在安装编译器之前，首先应该保证操作系统基本环境支持C++的编译，安装相关依赖的软件包，如下所示
下载Thrift的软件包，并解压缩：
配置、编译、安装Thrift，如下所示：
如果在配置的时候总是报如下错误：
如果需要的话，可以运行测试用例：
安装成功以后，可以输入如下命令行进行验证：
使用Thrift
我们直接使用Thrift官网提供的简</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/107.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
