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

郴州网站建设网站tcms系统

郴州网站建设网站,tcms系统,深圳网站建设哪家公司好,wordpress页面编辑分别使用dubbo协议和triple协议#xff0c;按照官方文档搭建Demo。 两个流程对比下来发现#xff0c;dubbo协议搭建起来比较简单直接#xff0c;定义好接口#xff0c;实现类#xff0c;然后启动provider和consumer就完事了。而triple协议则需要先定义proto文件 然后增加…分别使用dubbo协议和triple协议按照官方文档搭建Demo。 两个流程对比下来发现dubbo协议搭建起来比较简单直接定义好接口实现类然后启动provider和consumer就完事了。而triple协议则需要先定义proto文件 然后增加maven编译插件在maven编译时生成对应的接口类GreeterPOJO对象HelloReply、HelloRequest以及一些其他的辅助类用于后续定义接口实现时继承使用。 生成好之后需要导出的接口的实现需要继承自生成的DubboxxxTriple类 之所以要使用生成的类是为了完成Java与proto的互相转换。 后续的重点分析点在于 triple协议相比于dubbo协议多了哪些特性和优势使用这两种协议发起rpc请求的流程和接受到rpc请求的处理有哪些流程上的不同 目前已知tripple协议兼容http2.0和grpc更适用于云原生可以跨语言、跨端跨平台进行调用可以流式处理数据适用于直播等大数据包场景可以使用protobuf进行编解码 Dubbo3 triple流式编程示例 https://developer.aliyun.com/article/1097681 流式编程的应用场景 在一些大文件传输、直播等应用场景中consumer 或 provider 需要跟对端进行大量数据的传输由于这些情况下的数据量是非常大的因此是没有办法可以在一个RPC 的数据包中进行传输因此对于这些数据包我们需要对数据包进行分片之后通过多次 RPC 调用进行传输如果我们对这些已经拆分了的 RPC 数据包进行并行传输那么到对端后相关的数据包是无序的需要对接收到的数据进行排序拼接相关的逻辑会非常复杂。但如果我们对拆分了的 RPC 数据包进行串行传输那么对应的网络传输 RTT 与数据处理的时延会是非常大的。 为了解决以上的问题并且为了大量数据的传输以流水线方式在 consumer 与provider 之间传输因此 Streaming RPC 的模型应运而生。 通过 Triple 协议的 Streaming RPC 方式会在 consumer 跟 provider 之间建立多条用户态的长连接Stream。同一个 TCP 连接之上能同时存在多个 Stream其中每条 Stream 都有 StreamId 进行标识对于一条 Stream 上的数据包会以顺序方式读写。 我理解流式调用不再是传统的消费者和提供者的短暂的、单向通信而是消费者和提供者之间建立的持久的、双向通信 triple多语言兼容原理proto作为媒介定义接口和参数。 triple兼容grpc原理header里面包含所有grpc的header 此外dubbo 协议在线程模型上比较丰富而triple则比较单一。详见 https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/threading-model/provider/ 文档中可见dubbo对消费者的线程模型进行了一次优化主要是降低IO线程的开销将IO线程做的一些事情交给业务线程。 服务端的线程模型则比较多有五种。其实我比较关心的点在于dubbo这5种线程模型AllDispatcher、DirectDispatcher、MessageOnlyDispatcher、ExecutionDispatcher、ConnectionOrderedDispatcher他们有何选型上的考量。据我观察其实完成一次rpc通信主要的消耗有channel的sent、received、connected、disconnected、caught以及数据的编解码。这五种线程模型其实是把这些任务以不同的方式分散到IO和业务线程。如下图为All Dispatcher 。 那么在面对不同场景时如何对线程模型进行配置呢这些线程模型分别适用于怎么样的场景呢 https://zhuanlan.zhihu.com/p/157354148 这篇文章里我认为有句话说的很好 如果处理逻辑较为简单并且不会发起新的I/O请求那么直接在I/O线程上处理会更快因为这样减少了线程池调度与上下文切换的开销毕竟线程切换还是有一定成本的。如果逻辑较为复杂或者需要发起网络通信比如查询数据库则I/O线程必须派发请求到新的线程池进行处理否则I/O线程会被阻塞导致处理IO请求效率降低。 也就是说如果本次请求是一次快速的操作那么大可以在IO线程中进行因为进行上下文切换反而会更加耗时。但如果是一次耗时的操作那么就推荐交给业务线程来处理防止IO线程被占满。 怎么去判断本次是不是快速地呢我认为有两个方面一个是是否进行了多次网络通信或者磁盘IO另一个是 接收/响应的数据量是否过大导致编解码过于耗时。
http://www.sadfv.cn/news/93598/

相关文章:

  • 网站建设区域加盟中国seo网站
  • 网站信息安全监测建设方案懒人办公ppt模板免费
  • 北戴河网站建设图书馆登录系统网站建设代码
  • 网站自动生成网页网站定位与功能分析
  • 建手机网站报价跨境电商怎么注册店铺
  • 重庆网站推广营销如何做阿里巴巴的网站首页
  • 艺缘网站的建设wordpress能用的插件吗
  • 互联网大赛建设网站策划书网站建设公司好吗
  • 如何申请免费域名做网站asp网站合法
  • 悦阁网站建设易企秀网站开发语言
  • 怎么自己搭建网站网站开发知识体系
  • 谁能给做网站抖音网络营销案例分析
  • 济南网站制作设计公司thinkphp手机网站制作
  • 仿163ym源码交易平台网站源码wordpress radiate
  • 积玉桥网站建设工程建设是什么工作
  • 昆明网站建设网站简单旅游网站模板下载
  • 丰台手机网站设计怎么做网站淘宝转换工具
  • 山东省省建设厅网站温州自助模板建站
  • 中国庆阳wordpress结构优化插件
  • 做古建的那些网站比较适合企业网站首页开发
  • 帝国cms做漫画网站教程广州冼村社区服务中心电话
  • 怎么做电影流量网站吗云南建设网官方网站
  • 上海虹口网站建设各地微信推广平台大全
  • 俄文网站设计国家商标注册官网入口
  • 万网云虚拟主机上传网站做神马网站优化排
  • asp.net窗体网站免费asp网站后台管理系统
  • 长沙市设计网站公司网络编程就业前景
  • 网站文字不能编辑器视频制作软件教程
  • 免费可以做旅游海报 的网站网站 谁建设谁负责
  • 湖北网站建设哪家好甘肃建设住房厅网站