Thrift框架,java作为客户端,c++作为服务端

首先要对thrift了解,就是一个RPC框架,做过JAVA的应该知道类似于dubbo,

     thrift是FaceBook开源的一款跨语言的RPC(Remote Procedure Call:远程过程调用)框架,其具体过程为:RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行【摘自百度百科】。

       好了,不了解的人可能还是一脸懵213,此篇文章的目的也不是在于深究thrift的底层原理,这里我们只要学会thrift的用法就好!首先我们还是根据RPC过程描述对thrift的具体操作有个总体认识,如下图所示:

       我们的目的是实现Client客户端和Server服务端的通信传输,有了thrift框架的好处就是,客户机调用进程发送一个有进程参数的调用信息到服务进程而无需关注底层的网络传输,这个调用信息通过thrift框架定义的一个.thrift文件定义,.thrift文件定义一个简单的中的数据类型和服务接口,以作为输入文件,可以通过特定的命令使用编译器生成代码用来方便地生成RPC客户端和服务器通信的特定语言的代码,以下将从.thrift文件构造,Client和Server代码生成和Client和Server代码编写三个部分
 

一.首先是书写接口文件 

使用thrift定义的语法(把你要开放的端口,进行声明)

案列:

service hello {
    void func1( )
}

二.进行C++服务端的配置

C++服务端开发:

                   IDE:VS2010

                   操作系统:windows

                   

1.首先新建一个win32项目,

   

           Thrift框架,java作为客户端,c++作为服务端_第1张图片

 

  2. 第二步 ,选择windows应用程序Thrift框架,java作为客户端,c++作为服务端_第2张图片

3.右击项目,点属性打开Thrift框架,java作为客户端,c++作为服务端_第3张图片

4.第四步,加载c++服务端这边所需的类库

下面先对thrift所需的类库进行介绍

 

 

4.1 Thrift的安装(Windows/C++)

 

4.1.1前言

用C/C++开发thrift应用,需要用到thrift接口。在windows平台使用Visual Studio时,要比在linux平台复杂一些,主要是因为一些依赖库无法做到自动安装(类似yum install或 apt-get install那样)。但总体而言,两个平台的过程大体相似。个人推荐在linux上运行;

开发环境需要的组件包括:

  • 接口库libthrift、libthriftnb(可选),源码编译安装;
  • 依赖库boost,可二进制安装或编译安装;
  • 依赖库libevent(可选),源码编译安装;
  • 依赖库openssl,可解压安装或二进制安装;
  • thrift接口源码文件。

4.1.2boost库

boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。在Windows平台有二进制安装或编译安装两种方式,这里选择前一种。

  1. 从官网https://dl.bintray.com/boostorg/release/1.64.0/binaries/选择安装文件下载,注意与VS版本、OS位数保持一致,否则将来会报:链接错误—找不到库文件;
  2. Winows 64位、VS 2010对应的安装文件是boost_1_64_0-msvc-14.0-64.exe,下载后开始安装,过程略,假设安装目录为D:\boost_1_64_0;

4.1.3libevent库(可选)

Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,只有在用到libthriftnb才需要。需源码编译安装。

  1. 访问官网http://libevent.org/,选择合适的稳定版源码包进行下载,假设为libevent-2.0.22-stable.tar.gz;
  2. 解压至相应目录,假设为D:\libevent;因其中缺少一个文件test/print_winsock_errors.c,需补上,方法参见另一篇随笔《windows编译libevent时报告“缺少print_winsock_errors.obj”的解决》;
  3. 使用VS命令提示工具,cd至D:/libevent,开始编译:nmake /f Makefile.nmake
  4. 完成后,生成的库文件libevent_core.lib和libevent.lib及原有的h文件均在D:/libevent目录。

4.1.4openssl库

openssl库是一个被很多项目用到的依赖库,解压安装和二进制安装均可。

  • 解压安装:这里直接使用了另一个项目的解压包,下载地址是http://downloads.datastax.com/cpp-driver/windows/,选择解压包时依然注意与VS版本、OS位数保持一致,假设是openssl-1.0.2l-win64-msvc140.zip,解压目录假设为D:\openssl,静态库文件libeay32.lib和ssleay32.lib在D:\openssl\static\lib文件夹;
  • 二进制安装:下载OpenSsl-Win64.exe开始安装,网上资源很多,不多说。

 

 4.2

点击c/c++ >> 常规>>附加包含目录  

Thrift框架,java作为客户端,c++作为服务端_第4张图片

 点击 链接器 >>常规>>附加包含目录  

Thrift框架,java作为客户端,c++作为服务端_第5张图片

 

你可能感兴趣的:(JAVA基础)