`
acme_ltt
  • 浏览: 53719 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Thrift初使用Erlang+cpp

阅读更多

   ************写在最前面************

    个人比较喜欢Thrift,它可以高效的解决不同编程语言之间的交互问题,使不同编程语言可以很轻松地进行交互,完成软件抑或是系统的架构。

    Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。

    Facebook使用的几种不同的语言和不同的services。 PHP是最终用于前端,Erlang是用于聊天,Java和C ++也使用于多种场所,也许还有其他语言。Thrift是一个内部开发的跨语言的框架,联系语言,使他们可以在一起合作,从而使他们之间可以交互。 这使得Facebook可以更容易为继续保持其跨语言的发展。

 Facebook已经让Thrift开源。更多的语言支持已被添加到Thrift。

   Thrift的框架介绍,可以详见董的博客 

    http://dongxicheng.org/search-engine/thrift-framework-intro/

 

    小弟就不在此谈论了。

 

***Thrift的安装***

 

1、安装环境

      可以在Linux、win下进行安装,当然在win环境下安装时,需要在win安装相应的插件

      在Linux下安装前,需要确保操作系统中有相应的语言编译器,如gcc、g++、erl等,根据自己的需要进行安装

2、获取安装包

      我用的是thrift-0.2.0-incubating.tar.gz版本,有更高的版本可根据自己的需要下载

3、安装

     1、解压

      这一步,习惯Linux的人群,都应该不陌生

       tar zxvf thrift-0.2.0-incubating.tar.gz

     2、./bootstrap.sh

     3、编译

        ./configure(时间不是很长)

    4、make(时间稍微有点长)

    5、install 

      这一步需要有超级用户的权限

      sudo make install 

4、安装完成之后,输入thrift之后,如果出现thrift的输入帮助,就说明,thrift已经安装成功

 

***Thrift简单使用***

 

以CPP和Erlang交互编程为例

 

1、进入/thrift-0.2.0/tutorial文件

2、启动Erlang服务器

      thrift -r -gen erl  tutorial.thrift

     编译成功之后,就会出现gen-erl文件夹

    进入erl文件夹,启动./server.sh

    进入erl shell中,输入命令server:start().至此,erlang服务器端已经启动

3、启动CPP客户端

    进入cpp文件夹

    使用make进行编译

    ./CppClient 启动cpp客户端

4、出现计算结果后,表明,erlang和cpp的交互编程已经成功。

 

ps:要确保服务器端和客户端的socket端口一致

 

 

分享到:
评论

相关推荐

    thrift源码+DEMO+简单教程

    Thrift通过定义一种中间表示(IDL,Interface Description Language)来描述服务接口,允许开发者在多种编程语言之间轻松地创建和使用服务。 ## 一、Thrift IDL Thrift IDL是Thrift的核心部分,它是一种类似C++或...

    使用thrift、websocket在javascript和cpp之间建立rpc调用

    使用thrift、websocket在javascript和c++之间建立rpc调用机制。 如果要使用js+html来写界面,cpp来写底层业务逻辑,这就非常有用了。 当然,如果底层不用cpp来写,也可以参考本代码的js对thrift的rpc包装。

    Thrift+SpringBoot+RocketMQ+Elasticsearch+C#

    Thrift+SpringBoot+RocketMQ+Elasticsearch+C#; 1.通过thrift的RPC实现C#与java通信, 2.阿里巴巴RocketMQ实现高并发数据消息队列 3.Elasticsearch实现对数据全文检索

    thrift官方代码+与dubbo集成支持原生thrift协议

    Thrift的编译器负责将IDL文件转换为实际的代码,而SDK则提供了在目标语言中使用Thrift接口的必要库和工具。 描述中提到的"与dubbo集成支持原生thrift协议"是指将Thrift与Dubbo框架结合使用。Dubbo是阿里巴巴开源的...

    netty+thrift高并发高性能

    综上所述,通过结合使用Netty和Thrift,可以有效地解决传统RPC框架存在的性能瓶颈问题,实现高并发和高性能的服务。这种组合不仅可以大幅提高系统的吞吐量,还能降低延迟,是现代分布式系统中不可或缺的技术栈之一。

    windows下vs2010编译的thrift,包含lib和cpp源码

    在本资源中,我们讨论的是在Windows环境下,使用Visual Studio 2010编译的Thrift版本0.11.0,包含了编译生成的库文件(lib)以及原始的C++源码(src)。 首先,让我们深入理解Thrift的核心概念: 1. **Thrift IDL...

    ehbase:通过 Erlang Thrift 库的 Erlang HBase 驱动程序

    在表面之下, ehbase使用 Erlang Thrift 库通过其 Thrift 网关连接到 HBase,该网关包含在标准 HBase 0.9x 版本中。 另外, ehbase使用进行连接的池封装。 但是我使用了,它支持更多功能,并且出于某种原因暂时不向...

    thrift入门教程+代码

    1. 接口定义语言(IDL):Thrift使用IDL文件来定义服务接口,这些文件通常以`.thrift`为扩展名。在IDL文件中,你可以定义数据类型(如结构体、枚举、异常)、服务以及它们的操作。例如: ```thrift service ...

    Windows下QT使用Thrift的样例

    在Windows环境下,使用QT结合Thrift进行开发是一项常见的任务,特别是在构建跨平台的服务或应用时。这个样例项目提供了一种方法,使开发者能够在QT环境中有效地利用Thrift框架。让我们详细了解一下这些技术以及如何...

    Thrift之C++初体验

    thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, ...

    C++(Qt)下的thrift的使用示例

    在这个“C++(Qt)下的thrift的使用示例”中,我们将探讨如何在Qt项目中集成和使用Thrift。 首先,Thrift的主要功能是定义服务接口和数据结构,这些定义会被编译成各种目标语言的代码,以便于实现客户端和服务器端...

    Apache Thrift.rar+RPC+微服务+异步通信+安全认证+服务发现等

    Thrift数据类型与IDL理解 Thrift服务定义与实现 Thrift跨语言服务开发实践 Thrift编译器与代码生成 Thrift客户端与服务器端通信 Thrift异常处理与错误码 Thrift性能优化与调优 Thrift与RPC原理深入解析 Thrift在...

    thrift的使用介绍

    一旦有了IDL文件,你可以使用Thrift编译器生成对应语言的客户端和服务器端代码。例如,对于PHP和Python,这将生成服务接口类、协议处理类以及数据结构的序列化和反序列化代码。 - `PhpClient.php`: 这是生成的PHP...

    thrift0.9.3 windows cpp lib patch

    解决在thrift0.9.3 cpp lib编译时候出现的问题: 无法解析的外部符号 "public: virtual void __cdecl apache::thrift::server::TServerFramework::serve(void)" (?serve@TServerFramework@server@thrift@apache@@...

    Apache Thrift 使用说明

    对于 C++ 示例,需要使用 `thrift` 工具生成 C++ 代码,然后编译生成的 `CppServer` 和 `CppClient`,分别运行这两个程序,可以看到客户端和服务器端之间的交互。 对于 Java 示例,首先同样使用 `thrift` 生成 Java...

    Thrift框架使用分享

    Thrift框架通过接口描述语言(IDL)来定义服务,支持多种编程语言,如C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk等,并能生成相应语言的服务端和客户端代码。其传输数据采用二进制...

    Thrift源码+库文件,解压后可直接使用

    使用Thrift时,首先需要安装Thrift编译器,然后编写服务定义(.thrift文件)。编译器会生成对应语言的客户端和服务端代码,接着在VS2010中编译这些代码,生成可执行文件或库。服务端程序启动后监听特定端口,客户端...

    通过thrift使用c++访问hbase

    使用`thrift --gen cpp Hbase.thrift`命令,这会在当前目录下生成一个名为`gen-cpp`的文件夹,其中包含了HBase的C++客户端代码。 **三、准备HBase** 1. **验证HBase和ThriftServer状态**: 确保HBase正常工作,检查...

    thrift+依赖包整合

    在"thrift+依赖包整合"中,我们包含了以下关键组件: 1. **Thrift**:这是Thrift的核心库,它提供了一个编译器,可以将用户定义的IDL文件(.thrift)转换为各种目标语言的代码,如Java、Python、C++等。这个编译器...

    Java中使用Thrift实现RPC示例代码.rar

    本示例主要探讨如何在Java环境中使用Thrift实现RPC。 首先,我们需要理解Thrift的工作原理。Thrift通过定义一种中间表示(IDL,Interface Description Language)来描述服务接口和数据结构。这个IDL文件类似于接口...

Global site tag (gtag.js) - Google Analytics