Consumer 端在发起调用之前会先走 filter 链;provider 端在接收到请求时也是

先走 filter 链,然后才进行真正的业务逻辑处理。

默认情况下,在 consumer 和 provider 的 filter 链中都会有 Monitorfilter。

1、MonitorFilter 向 DubboMonitor 发送数据

2、DubboMonitor 将数据进行聚合后(默认聚合 1min 中的统计数据)暂存到

ConcurrentMap<Statistics, AtomicReference> statisticsMap,然后使用一个

含有 3 个线程(线程名字:DubboMonitorSendTimer)的线程池每隔 1min 钟,

调用 SimpleMonitorService 遍历发送 statisticsMap 中的统计数据,每发送完毕

一个,就重置当前的 Statistics 的 AtomicReference

3、SimpleMonitorService 将这些聚合数据塞入 BlockingQueue queue 中(队

列大写为 100000)4、SimpleMonitorService 使用一个后台线程(线程名为:

DubboMonitorAsyncWriteLogThread)将 queue 中的数据写入文件(该线程以

死循环的形式来写)

5、SimpleMonitorService 还会使用一个含有 1 个线程(线程名字:

DubboMonitorTimer)的线程池每隔 5min 钟,将文件中的统计数据画成图表

Dubbo Monitor 实现原理?的更多相关文章

  1. 说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?

    面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原理,比如 kaf ...

  2. 1.说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?

    作者:中华石杉 面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原 ...

  3. dubbo的实现原理

    dubbo的介绍 dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成. dubbo框架是基于Spring容器运 ...

  4. 分布式的几件小事(二)dubbo的工作原理

    1.dubbo的工作原理 ①整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口. 图中从下至上分为十层,各层均为单 ...

  5. dubbo No provider available for the service com.alibaba.dubbo.monitor.MonitorService from registry

    No provider available for the service com.alibaba.dubbo.monitor.MonitorService from registry http:// ...

  6. 【原创】大叔问题定位分享(6)Dubbo monitor服务iowait高,负载高

    一 问题 Dubbo monitor所在服务器状态异常,iowait一直很高,load也一直很高,监控如下: iowait如图: load如图: 二 分析 通过iotop命令可以查看当前系统中磁盘io ...

  7. Dubbo Monitor 配置

    1. Dubbo Monitor 下载dubbo-monitor-simple-2.5.3-assembly.tar.gz 链接:http://pan.baidu.com/s/1gf88wDX 密码: ...

  8. 【DUBBO】Dubbo:monitor的配置

    [一]:配置项 <dubbo:monitor protocol="registry"/> [二]:配置解析器-->具体解析器为com.alibaba.dubbo. ...

  9. Dubbo Monitor Simple 监控中心

    下载项目源码(其中的 dubbo-registry-simple 代表简单的注册中心,用于开发测试,生产环境一般用zookeeper) https://github.com/apache/incuba ...

随机推荐

  1. docker 批量删除 none 镜像

    在使用 docker images 命令的时候,经常会在列表中看到 <none>:<none> 的镜像. 这种镜像在 Docker 官方文档中被称作 dangling imag ...

  2. 深入理解Java类加载机制,再也不用死记硬背了

    谈谈"会"的三个层次 在<说透分布式事务>中,我举例里说明了会与会的差别.对一门语言的学习,这里谈谈我理解的"会"的三个层次: 第一层:了解这门语言 ...

  3. 学逆向之web_local

    访问题目就能看到源码 发现host需要是localhost,本来可直接用file/var/www/html/flag.php协议读取源码 那么我们利用file://localhost绕过即可,加上lo ...

  4. C# init用法

    init是什么意思? init就 modreq([System.Runtime]System.Runtime.CompilerServices.IsExternalInit) 类型的缩写 modreq ...

  5. Ocelot和IdentityServer4初体验

    Ocelot是一个用.NET Core实现的开源API网关技术.IdentityServer4是一个基于OpenID Connect和OAuth2.0的针对ASP.NET Core的框架,以中间件的形 ...

  6. wurstmeister/kafka:docker构建kafka遇到的问题

    1. kafka 容器无法启动 过程描述: docker ps -a 看到 Exited docker logs a87d9cd2a8ac 查看日志: 发现是内存不够 解决方案: 修改 kafka的J ...

  7. Qt:QUrl构造时的qrc前缀

    参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...

  8. c#修改密码后实现重新登录

    C#中密码修改成功后,提示"密码修改成功,请重新登录.当用户一点确定的时候就跳到登录界面 直接重启程序就是了,在弹出个Messages.show("密码修改成功,请重新登录.&qu ...

  9. (第三章)TF框架之实现验证码识别

    这里实现一个用神经网络(卷积神经网络也可以)实现验证码识别的小案例,主要记录本人做这个案例的流程,不会像之前那么详细,主要用作个人记录用... 这里是验证码的四个字母,被one-hot编码后形成的四个 ...

  10. 面向对象编程(C++篇1)——引言

    目录 1. 概述 2. 详论 2.1. 类与对象 2.2. 数据类型 3. 目录 1. 概述 现代C++与最原始的版本已经差不多是两种不同的语言了.不断发展的C++标准给C++这门语言带来了更多的范式 ...