美文网首页
dubbo线程模型

dubbo线程模型

作者: xhrg | 来源:发表于2018-12-31 15:32 被阅读0次

这里写dubbo线程模型,主要是讲服务消费者和服务提供者这两大核心的线程模型。

一 dubbo服务提供者线程模型。

这里我们想得到dubbo线程模型,先启动dubbo提供者,然后jstack pid >> stack.log获取线程信息。也可以根据debug来观察信息,如下图所示。

11111.PNG

主要有以下线程:

  • 5 New I/O worker
  • 1 New I/O server boss
  • 1 dubbo-remoting-server-heartbeat-thread-1
  • 1 DubboRegistryFailedRetryTimer-thread-1
  • 1 ZkClient-EventThread-23-127.0.0.1:2181
  • 1 main-SendThread
  • 1 main-EventThread
  • 6 DubboSaveRegistryCache-thread-1
  • 1 DubboServerHandler-ip-thread-1
  • 1 DubboResponseTimeoutScanTimer

根据jstack打印的堆栈以及相关调用链路上debug会得出一些信息。

  • New I/O worker和New I/O server boss 对应netty的worker和boss线程。
  • heartbeat,心跳检测,dubbo服务端启动会,会对和客户端的长连接做周期性检查。
  • DubboRegistryFailedRetryTimer

dubbo服务提供者流程。

  • (New I/O worker线程)当有请求进来的时候,因为是长连接,这里的请求进来指的是Channel接受到消息,首先是进入NettyHandler的messageReceived方法。
  • 然后经过HeartbeatHandler判断是不是心跳请求或者响应,发现不是,则继续往下执行received。
  • 再往下走,把这里的Channel,ChannelHandler,message扔给ChannelEventRunnable类,放在DubboServerHandler-xxx-thread-8线程执行。
  • 该线程执行代码是在ChannelEventRunnable:run中。发现是RECEIVED,则调用DecodeHandler的received。然后执行到HeaderExchangeHandler的received。在received中,会有这个代码Response response = handleRequest(exchangeChannel, request);。然后返回结果。

二 dubbo服务消费者线程模型。

相关文章

  • DUBBO线程模型和调度策略

    DUBBO线程模型 从官方描述来看dubbo线程模型支持业务线程和I/O线程分离,并且提供5种不同的调度策略。 拿...

  • dubbo线程模型

    这里写dubbo线程模型,主要是讲服务消费者和服务提供者这两大核心的线程模型。 一 dubbo服务提供者线程模型。...

  • Ali Dubbo

    遗留问题:线程模型?? Dubbo配置的例子: dubbo/dubbo-samples JSR 303: Bean...

  • Dubbo线程模型2

    转自 https://ifeve.com/dubbo-threadmodel/ Dubbo剖析-线程模型 一、前言...

  • Dubbo之线程模型

    以netty传输层实现为例 Dubbo的线程模型其实就是netty的线程模型,主从Refactor模型。 主Ref...

  • Dubbo线程池

    Dubbo的线程模型与线程池策略 Dubbo默认的底层网络通讯使用的是Netty,服务提供方NettyServer...

  • dubbo线程模型

    https://www.processon.com/mindmap/5b62750ce4b08d36229ac023

  • Dubbo线程模型

    线程是每个应用都必须关系的事情,毕竟任何服务器的资源都是有限的,服务线程过少的容易发生阻塞,服务线程过多的话上下文...

  • Dubbo 消息派发的线程模型

    今天我们要介绍的是Dubbo消息派发的时候,使用的线程模型,Dubbo版本2.8.4。那么什么是Dubbo的消息派...

  • dubbo 线程模型浅析

      dubbo线程模型分为IO线程和服务调用处理线程,IO线程主要是netty的线程,可以在protocol标签中...

网友评论

      本文标题:dubbo线程模型

      本文链接:https://www.haomeiwen.com/subject/ikzilqtx.html