当前位置: 首页 > news >正文

九州娱乐官方网站怎么做代理青海wap网站建设哪家好

九州娱乐官方网站怎么做代理,青海wap网站建设哪家好,哈尔滨公司建站模板,WordPress模板推荐国外以下是一个 使用多路复用(TMultiplexedProtocol) 的 Thrift 客户端完整流程和关键函数(以 Java 为例),适用于当服务端使用 TMultiplexedProcessor 注册了多个服务时,客户端可以区分并调用不同的服务。 ✅ 客…
以下是一个 使用多路复用(TMultiplexedProtocol) 的 Thrift 客户端完整流程和关键函数(以 Java 为例),适用于当服务端使用 TMultiplexedProcessor 注册了多个服务时,客户端可以区分并调用不同的服务。

✅ 客户端整体流程(使用 TMultiplexedProtocol)

1. 定义多个服务(以两个为例)

// example1.thrift
namespace java exampleservice ExampleService1 {string sayHello(1:string name)
}
// example2.thrift
namespace java exampleservice ExampleService2 {i32 add(1:i32 a, 2:i32 b)
}

使用 Thrift 编译器生成 Java 代码:

thrift --gen java example1.thrift
thrift --gen java example2.thrift

2. 服务端使用多路复用(服务端部分简略)

TMultiplexedProcessor multiplexedProcessor = new TMultiplexedProcessor();multiplexedProcessor.registerProcessor("ExampleService1", new ExampleService1.Processor<>(new ExampleService1Impl()));
multiplexedProcessor.registerProcessor("ExampleService2", new ExampleService2.Processor<>(new ExampleService2Impl()));TServerTransport serverTransport = new TServerSocket(9090);
TServer server = new TThreadPoolServer(new TThreadPoolServer.Args(serverTransport).processor(multiplexedProcessor));
server.serve();

3. 客户端实现(核心)

import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TMultiplexedProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;import example.ExampleService1;
import example.ExampleService2;public class ThriftClient {public static void main(String[] args) {TTransport transport = null;try {// 1. 打开传输层连接transport = new TSocket("localhost", 9090);transport.open();// 2. 创建基础协议TProtocol baseProtocol = new TBinaryProtocol(transport);// 3. 使用多路复用协议(针对不同服务)TMultiplexedProtocol protocol1 = new TMultiplexedProtocol(baseProtocol, "ExampleService1");TMultiplexedProtocol protocol2 = new TMultiplexedProtocol(baseProtocol, "ExampleService2");// 4. 创建客户端 Stub(代理)ExampleService1.Client client1 = new ExampleService1.Client(protocol1);ExampleService2.Client client2 = new ExampleService2.Client(protocol2);// 5. 调用服务方法String greeting = client1.sayHello("Alice");int result = client2.add(5, 7);System.out.println("Service1 response: " + greeting);System.out.println("Service2 response: " + result);} catch (Exception e) {e.printStackTrace();} finally {// 6. 关闭连接if (transport != null) {transport.close();}}}
}

4. C++ 版本:客户端实现

客户端代码(C++)
#include 
#include 
#include 
#include #include "ExampleService1.h"
#include "ExampleService2.h"using namespace apache::thrift;
using namespace apache::thrift::protocol;
using namespace apache::thrift::transport;int main() {try {// 客户端连接std::shared_ptr socket(new TSocket("localhost", 9090));std::shared_ptr transport(new TBufferedTransport(socket));std::shared_ptr protocol(new TBinaryProtocol(transport));transport->open();// 使用多路复用协议TMultiplexedProtocol protocol1(protocol, "ExampleService1");TMultiplexedProtocol protocol2(protocol, "ExampleService2");// 创建客户端ExampleService1Client client1(protocol1);ExampleService2Client client2(protocol2);// 调用服务std::string greeting;client1.sayHello(greeting, "Alice");std::cout << "Response from ExampleService1: " << greeting << std::endl;int result;client2.add(result, 5, 7);std::cout << "Response from ExampleService2: " << result << std::endl;transport->close();} catch (const std::exception& e) {std::cerr << "Error: " << e.what() << std::endl;}return 0;
}

🔍 客户端关键类和函数说明

类 / 函数
作用说明
TSocket(host, port)
创建客户端传输连接(基于 TCP)
transport.open()
打开连接
TBinaryProtocol
使用二进制协议进行编码
TMultiplexedProtocol
多路复用协议,用于标识服务名称
ExampleService1.Client
客户端代理,调用服务方法
client1.sayHello("Alice")
实际调用远程服务端方法
transport.close()
关闭连接

✅ 小提示

  • 多路复用的关键是:
    • 服务端使用 TMultiplexedProcessor 注册服务(带名字);
    • 客户端用 TMultiplexedProtocol 创建不同服务的协议实例(带同样的名字)。
http://www.dtcms.com/a/502185.html

相关文章:

  • APP开发网站建设哪家好制作一个网站平台要多钱
  • 广州网站建设公司排行网站后台管理水印怎么做
  • seo建站是什么意思软件系统开发在哪儿
  • 新手网站建设wordpress文章摘要显示
  • 建设网站要花多少钱镇江搜索优化技巧
  • 网站开发客户郑州网站建设推广有限公司
  • 广州市工商注册查询系统唐山网站关键词优化
  • 免费做网站可以一直用吗天津国际工程建设监理公司网站
  • 农业企业网站建设流程建设视频网站
  • 在网站上显示备案信息我的世界做圆网站
  • 如何删除网站的信息吗做任务推广网站
  • 备案审核网站显示500网站开发颜色选择器
  • 贵阳专业做网站的公司班级网站怎么做ppt模板
  • 西宁网站建设哪家强企业网站建设需要许可证吗
  • 营业执照申请网站北京网站搭建报价
  • 哈尔滨优质官网建站企业外贸网站交易平台
  • 唐山丰南建设局网站培训营销型网站建设
  • 企业网站后台内容如何修改网页编辑器安卓
  • 南昌制作网站软件工程建设网最新信息网站
  • 比较好的网页网站设计企业设计网站公司排行榜
  • 东莞排名seo网站关键词优化山东省住房城乡建设部网站首页
  • 免费网站建站w汕头 网站建设
  • 久商推网站建设广西医科大学网站建设
  • 网站模板交易网上推广什么比较赚钱
  • 免费做网站页头图龙华网站建设专业定制企业
  • 顺义做网站同学河北手机网站制作公司
  • 青岛网站推广途径外贸业务怎么利用网站开发客户
  • 苏州建网站的公司哪家公司好wordpress 弹出视频
  • 南通网站的优化开发网站做图文水印逻辑
  • 建设银行镇海支行网站黄金网站软件入口免费