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

北京企业网站改版柳州企业网站制作哪家好

北京企业网站改版,柳州企业网站制作哪家好,网页界面设计中一般使用的分辨率,电商网站建设包括哪些内容一元RPC模式 一元 RPC 模式也被称为简单 RPC 模式。在该模式中#xff0c;当客户端调用服务器端的远程方法时#xff0c;客户端发送请求至服务器端并获得一个响应#xff0c;与响应一起发送的还有状态细节以及 trailer 元数据#xff08;这部分不是默认发送的#xff0c;…一元RPC模式 一元 RPC 模式也被称为简单 RPC 模式。在该模式中当客户端调用服务器端的远程方法时客户端发送请求至服务器端并获得一个响应与响应一起发送的还有状态细节以及 trailer 元数据这部分不是默认发送的需要自己实现。 ![[Pasted image 20231115104223.png]] 使用场景 单次通讯传输数据包的时候返回收到应答。 在一元RPC模式中状态细节和trailer元数据并不是默认就有的它们是由服务器端根据需要添加的。状态细节通常包含了关于RPC调用的状态信息例如是否成功如果失败了具体是什么原因等。而trailer元数据则是一些额外的信息例如调用的时间服务器的处理时间等。 具体来说状态细节和trailer元数据的形式取决于你使用的RPC框架和编程语言。在gRPC中状态细节和trailer元数据通常以键值对的形式存在键和值都是字符串。例如你可能会看到这样的状态细节{status: success}或者这样的trailer元数据{processing-time: 123ms}。 请注意这只是一个例子实际的状态细节和trailer元数据会根据你的应用需求和服务器的实现来定。 在gRPC中服务器可以通过grpc::ServerContext对象来设置trailer元数据。这些元数据在RPC调用结束时发送给客户端。以下是一个C的示例展示了如何设置和发送trailer元数据 #include grpcpp/grpcpp.h #include your_service.grpc.pb.h // 替换为你的服务的protobuf头文件class YourServiceImpl final : public YourService::Service {grpc::Status YourMethod(grpc::ServerContext* context, const YourRequest* request,YourResponse* reply) override {// 处理你的方法逻辑...// 在RPC调用结束时设置trailer元数据context-AddTrailingMetadata(processing-time, 123ms);return grpc::Status::OK;} };在这个例子中服务器在处理完YourMethod方法后通过AddTrailingMetadata方法添加了一个名为processing-time的trailer元数据值为123ms。这个元数据会在RPC调用结束时发送给客户端。 至于状态细节它通常包含在返回的grpc::Status对象中。例如如果你的方法出现了错误你可以返回一个包含错误信息的grpc::Status对象 return grpc::Status(grpc::StatusCode::INTERNAL, An internal error occurred);在这个例子中服务器返回了一个状态码为INTERNAL的grpc::Status对象状态细节为An internal error occurred。这个状态细节会被发送给客户端客户端可以通过检查返回的grpc::Status对象来获取这个信息。 在服务端返回时设置多个状态和元数据 在gRPC中你可以通过多次调用AddTrailingMetadata方法来添加多个trailer元数据。每次调用都会添加一个新的键值对。例如 context-AddTrailingMetadata(processing-time, 123ms); context-AddTrailingMetadata(server-id, server-001); context-AddTrailingMetadata(timestamp, 2022-01-01T00:00:00Z);在这个例子中服务器添加了三个trailer元数据“processing-time”“server-id和timestamp”。 至于状态细节gRPC的grpc::Status对象只支持设置一个状态细节。如果你需要传递多个状态信息你可以将它们编码为一个字符串例如JSON格式的字符串然后设置为状态细节。例如 std::string status_detail R({error: An internal error occurred,error_code: 123,error_info: Some additional info }); return grpc::Status(grpc::StatusCode::INTERNAL, status_detail);在这个例子中服务器将多个状态信息编码为一个JSON格式的字符串然后设置为状态细节。客户端可以解析这个字符串来获取这些状态信息。 客户端接取trailer元数据 客户端可以接收到服务端发送的trailer元数据和状态细节并根据需要进行处理。 在gRPC中客户端可以通过grpc::ClientContext对象来获取trailer元数据。例如 grpc::ClientContext context; YourResponse response; grpc::Status status stub-YourMethod(context, request, response);if (!status.ok()) {std::cout RPC failed with code status.error_code() , message: status.error_message() std::endl;// 获取trailer元数据auto trailers context.GetServerTrailingMetadata();for (const auto kv : trailers) {std::cout Trailer key: kv.first , value: kv.second std::endl;} }在这个例子中客户端首先调用YourMethod方法并获取返回的grpc::Status对象。如果RPC调用失败客户端会打印出错误信息然后通过GetServerTrailingMetadata方法获取trailer元数据并打印出来。 至于状态细节客户端可以通过grpc::Status对象的error_message方法来获取。例如 std::cout Status detail: status.error_message() std::endl;在这个例子中客户端打印出了状态细节。如果状态细节是一个编码的字符串例如JSON格式的字符串客户端可以解析这个字符串来获取状态信息。 客户端发送 header 元数据、状态细节 在gRPC中客户端也可以设置和发送header元数据和状态细节。这可以通过grpc::ClientContext对象来实现。 首先客户端可以通过AddMetadata方法来设置header元数据 grpc::ClientContext context; context.AddMetadata(client-id, client-001); context.AddMetadata(timestamp, 2022-01-01T00:00:00Z);在这个例子中客户端设置了两个header元数据“client-id和timestamp”。 然后客户端可以通过TryCancel方法来取消RPC调用并通过set_cancel_message方法来设置状态细节 context.TryCancel(); context.set_cancel_message(The request was cancelled by the client);在这个例子中客户端取消了RPC调用并设置了状态细节为The request was cancelled by the client。 请注意这只是一个例子实际的使用方式会根据你的应用需求和gRPC的API来定。在gRPC中客户端也可以设置和发送header元数据和状态细节。这可以通过grpc::ClientContext对象来实现。 首先客户端可以通过AddMetadata方法来设置header元数据 grpc::ClientContext context; context.AddMetadata(client-id, client-001); context.AddMetadata(timestamp, 2022-01-01T00:00:00Z);在这个例子中客户端设置了两个header元数据“client-id和timestamp”。 然后客户端可以通过TryCancel方法来取消RPC调用并通过set_cancel_message方法来设置状态细节 context.TryCancel(); context.set_cancel_message(The request was cancelled by the client);在这个例子中客户端取消了RPC调用并设置了状态细节为The request was cancelled by the client。 补充 取消RPC调用通常是因为客户端不再需要RPC的结果或者因为某些条件已经改变使得继续等待响应变得没有意义。取消可以用于各种情况例如 超时: 如果一个RPC调用超过了预定的时间还没有响应客户端可能会选择取消它以避免无限期地等待。 用户干预: 如果用户发起了一个操作然后在操作完成前改变了主意客户端应用可能需要取消相关的RPC调用。 资源优化: 如果客户端已经发送了多个RPC调用但是得到了足够的信息来完成任务它可能会取消剩余的调用以节省服务器资源和网络带宽。 错误恢复: 如果在RPC调用过程中发生了错误客户端可能会取消该调用并尝试其他恢复策略。 依赖关系变化: 如果RPC调用的结果依赖于某些条件而这些条件在调用过程中发生了变化客户端可能需要取消调用。 取消RPC调用是异步编程中常见的一种模式它允许应用程序更有效地管理资源和用户交互。在gRPC中客户端可以通过调用grpc::ClientContext的TryCancel方法来取消RPC调用。服务端可以通过检查grpc::ServerContext::IsCancelled来响应取消事件并及时停止处理。 分享一个有趣的 学习链接https://xxetb.xet.tech/s/HY8za
http://wiki.neutronadmin.com/news/67035/

相关文章:

  • 建网站需要多少钱项目管理系统软件开发
  • 做网站需要审批不wordpress 模版定制
  • 和君设计专业网站建设公司天津建设工程信息网登录不了
  • 儿童教育网站怎么做有趣巩义网站优化
  • 网站建设 有限公司html教程网站
  • 做物流的都是上什么网站wordpress域名根管
  • 企业网站建设首页要写什么内容怎么设计网页主页
  • 青岛 公司 网站建设湖南搜索引擎推广软件
  • 佛山做网站公司排名泉州seo关键词排名
  • 广州免费建站推荐用腾讯云做会员网站
  • 富顺网站建设做公司子网站的请示报告
  • 暗网是什么网站wordpress 主题 强大
  • 做网站目的对网站建设服务公司的看法
  • 南宁网站运营优化平台四川建设网项目招标公告
  • 佛山网站改版免费的关键词优化工具
  • 室内设计装修网站网页设计需要用什么软件
  • 企业的做网站php做视频直播网站
  • 企业官方网站制作做市场推广应该掌握什么技巧
  • 搭建织梦网站视频教程南昌seo网站推广
  • 跨国网站受欢迎的建网站哪家好
  • 郴州建设公司网站用html做的美食网站
  • alipay域名网站网页升级升级跳转
  • 公司网站应该是市场部做吗东莞清溪镇做网站公司
  • 作一个网站要多少钱有手机网站了还要微网站吗
  • 做网站的框架模版html做静态网站
  • win7 iis asp网站配置文件网站推广方案
  • 政务门户网站建设江苏中南建设集团网站是多少
  • 对亚马逊网站做简要分析与评价临沂网站开发
  • 海口 做网站网站开发要什么样的环境
  • 网站做淘宝客大连哪个公司做网站开发的