当前位置: 首页 > 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://wiki.neutronadmin.com/news/93598/

相关文章:

  • 单位网站开发合同福田建网站费用
  • 为了找工作做的前端网站承德专业做网站的公司
  • 岳溥庥网站建设我的网站怎么不能搜索
  • 营销型网站公司排名做网站好赚钱
  • 网站策划书我与音乐万网发布网站
  • 科技网站设计欣赏网络设计规划师
  • 重庆相册制作工厂漳州网站建设优化推广
  • 基于php的电子商城网站建设俄罗斯搜索引擎yandex推广入口
  • 如何建论坛网站网站的功能模块
  • 网站建设w亿玛酷1流量订制怎么设计个人logo
  • 昆明网站seo技术厂家微信小程序wordpress
  • 网站如何做微信支付宝支付宝支付宝海口建设网站的公司哪家好
  • 网络营销的主要内容有哪些seo网站建设公司
  • 企业网站源码aspnet网站开发作业
  • 哪家网站建设公司好谷歌浏览器下载视频
  • 衡水市网站建设搭建网站平台有前途吗
  • 网站备案流程图片七牛云配置wordpress
  • 合肥网站制作哪家有名怎样网站不用备案
  • 设计师兼职网站安阳企业网站建设
  • 霞山手机网站建设公司怎么做企业网站排名
  • 小说下载网站哪个好网站空间永久免费
  • 手机可以做3d动漫视频网站建设环评备案登记网站
  • 手机如何制作网站源码wordpress v4.1教程
  • 重庆建设工程交易中心网站徐州企业制作网站
  • 天津做宠物饲料的网站编程学习入门网站
  • 门户网站 方案莱州网络推广
  • 家具技术支持东莞网站建设上海做网站品牌公司有哪些
  • 赣州建设网站公司大朗镇网站仿做
  • 天创网站网站建设促销活动
  • 佛山网站建设咨询大连手机自适应网站建设公司