`
linmomo02
  • 浏览: 178983 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于thrift的node.js rpc服务

阅读更多

1.在node.js 服务下创建node_modules文件,npm install  thrift 下载thrift到该文件下。

2.编写idl文件。user.thrift 内容如下:

    struct User{  

     1: string uid,  

     2: string uname,  

     3: bool usex,  

     4: i16 uage,  

    }  

    service UserService{  

     void add(1: User u),  

     User get(1: string uid),  

    }  

3.生成代码:
运行:thrift   --gen js:node user.thrift
会在当前目录下生成一个gen -nodejs文件夹,里面就是我们需要的js代码,将js代码拷贝到我们的项目中。
4.创建node.js服务段和客户端
服务端:

var thrift = require('thrift');

var UserService = require('./gen-nodejs/UserService.js'),
    ttypes = require('./gen-nodejs/user_types');


var users = {};

var server = thrift.createServer(UserService, {
   add: function(user, callback) {
    console.log("server stored:", user.uname);
    users[user.uid] = user;
    callback();
  }
});

server.listen(7911);
console.log('server start');
 客户端:
var thrift = require('thrift');

var UserStorage = require('./gen-nodejs/UserStorage.js'),
    ttypes = require('./gen-nodejs/user_types');

var connection = thrift.createConnection('localhost', 9090),
    client = thrift.createClient(UserStorage, connection);

var user = new ttypes.UserProfile({uid: 1,
                                   name: "Mark Slee",
                                   blurb: "I'll find something to put here."});

connection.on('error', function(err) {
  console.error(err);
});

client.store(user, function(err, response) {
  if (err) {
    console.error(err);
  } else {
    console.log("client stored:", user.uid);
    client.retrieve(user.uid, function(err, responseUser) {
      if (err) {
        console.error(err);
      } else {
        console.log("client retrieved:", responseUser.uid);
        connection.end();
      }
    });
  }
});

现在就可以测试了。

分享到:
评论

相关推荐

    thrift-0.9.2.tar.gz

    thrift,Apache Thrift 0.9.2 版本,解压后直接直接安装,可伸缩的跨语言服务开发框架,命令: 解压命令:tar -zxf thrift-0.9.2.tar.gz 安装命令:./configure --with-lua=no && make && make install 查看版本:...

    藏经阁-Thrift下的Node.js跨语言异构.pdf

    藏经阁-Thrift下的Node.js跨语言异构.pdf

    thrift-0.10.0.tar.gz

    它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。...

    thrift-0.9.3.exe

    它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。...

    thrift-0.10.0.exe

    它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。...

    Thrift RPC客户端的服务化框架代码

    Thrift RPC客户端的服务化框架代码,

    Thrift入门.docx

    Thrift入门.docx

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

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

    thrift-0.14.1.exe

    thrift-0.14.1.exe

    thrift0.9.3.rar

    本文件为thrift0.9.3版,内有jar包和EXE程序,方便在编译.thrift文件后,继续后续的client和恻然vice开发

    基于Thrift框架RPC的研究与实现_田翠珍.pdf

    基于Thrift框架RPC的研究与实现_田翠珍.pdf

    zookeeper + thrift实现的RPC 服务治理框架演示

    服务治理框架,一般存在与RPC的上一层,用来在大量RPC服务至上,协调客户端和服务器的调用工作。这个示例工程和我的博客《架构设计:系统间通信(13)——RPC实例Apache Thrift 下篇》...

    Node.js-nodejszookeeperthrift实现服务的高可用

    nodejs zookeeper thrift高可用服务,持续迭代中 zookeeper客户端支持断线重连,已在我们公司大规模应用于生产环境中

    thrift-0.9.1.exe和thrift-0.9.2.exe

    thrift文件生成工具thrift-0.9.1.exe和thrift-0.9.2.exe压缩包

    基于thrift的RPC调用实例

    RPC(Remote Procedure Call Protocol)远程过程调用协议实例,学习和使用thrift无痛入门代码。具体使用方法,可以看博客详解。

    Java基于Spring Boot、Thrift、Zookeeper实现的RPC框架

    基于Thrift、zookeeper的rpc实现 基于注解配置ThriftService、ThriftReference 基于权重的简单负载均衡 使用TMultiplexedProcessor发布多个服务

    一个用于人脸识别验证的跨平台跨语言的开发框架,其核心是一个基于 thrift 技术的 RPC 服务

    facelog 是一个用于人脸识别验证的跨平台跨语言的开发框架,其核心是一个基于 thrift 技术的 RPC 服务,为人脸识别应用提供数据管理、安全认证、前端设备管理、数据下发等基本核心的服务。facelog 只是一个针对人脸...

    java写非常不错的RPC框架,基于Thrift

    HARPC(High Availability RPC)是基于Thrift的跨语言、高可用的RPC框架。具备高性能、高可用、轻量级等特点 * 跨语言通信 * 方便的使Java、Python、C++三种程序可以相互通信 * 负载均衡和容灾处理 * 方便的实现...

    thrift-zookeeper-rpc

    对于Thrift服务化的改造,主要是客户端,可以从如下几个方面进行: 1.服务端的服务注册,客户端自动发现,无需手工修改配置,这里我们使用zookeeper,但由于zookeeper本身提供的客户端使用较为复杂,因此采用curator...

Global site tag (gtag.js) - Google Analytics