对 dubbo 的服务治理管理页面,有人查询已经上线的服务十分慢,甚至要 5,6 分钟才返回结果,但有些查询得时间比较正常。
由于是第一次接手这个项目,并不知到其中的原理,怎么实现查询的,有使用到 zk 加数据库的查询。大致判断应该是这两个耗时很长导致的。
接下来当然是开始在本地运行这个项目,beta 环境跑了 3 个小时才跑起来,我的内心是崩溃的。好不容易跑起来,该怎样入手了?
首先,模拟用户的搜索,试了好几个 dubbo 接口,查询的速度都正常,好不容易找到一个时间返回很长的,开始调查。
既然使用到的是 tomcat,一般来说接口也是同步返回的,没有另开线程返回异步结果,所以找到 idea debugger 下的所有线程。使用的是 tomcat,tomcat 开的线程用户请求,都是 http-nio-{{port}}-exec-{{index}},找到其线程前缀,发现一个线程的状态一直是 RUNNING,对其右键,选择 suspend,暂停此线程。发现其卡在 io 的连接上,看到其调用栈,考到项目本身类所在的线程栈,发现是一个调用 sql 接口。
接下来就是复现了。复制其线程站传递给数据库的参数,构造相对应的语句,发现其运行了 5 分钟半才得到结果,至此原因找到了,是 sql select 出了问题,由于有些 dubbo 读物并没有手动设置 group 这时会手动指定其 group 为 dubbo,而数据库数据又很多,根据 group 查询其结果超过 100 万条(),结果十分巨大。所以十分耗时,造成结果查询很慢。
近期热议
推荐标签 标签
-
React
192 引用 • 291 回帖 • 440 关注
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
-
心情
59 引用 • 369 回帖
心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。
-
GitBook
3 引用 • 8 回帖 • 2 关注
GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。
-
Shell
122 引用 • 73 回帖
Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。
-
Oracle
103 引用 • 126 回帖 • 453 关注
Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。
-
倾城之链
23 引用 • 66 回帖 • 96 关注
-
负能量
85 引用 • 1201 回帖 • 455 关注
上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)
-
OkHttp
16 引用 • 6 回帖 • 53 关注
OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。
-
LaTeX
9 引用 • 32 回帖 • 172 关注
LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。
-
GraphQL
4 引用 • 3 回帖 • 21 关注
GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
-
学习
161 引用 • 473 回帖
“梦想从学习开始,事业从实践起步” —— 习近平
-
安装
128 引用 • 1184 回帖 • 1 关注
你若安好,便是晴天。
-
Chrome
60 引用 • 287 回帖 • 1 关注
Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。
-
MongoDB
90 引用 • 59 回帖 • 2 关注
MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。
-
TextBundle
1 引用 • 2 回帖 • 43 关注
TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。
-
导航
37 引用 • 168 回帖
各种网址链接、内容导航。
-
机器学习
76 引用 • 37 回帖 • 1 关注
机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
-
单点登录
9 引用 • 25 回帖 • 4 关注
单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
-
区块链
91 引用 • 751 回帖 • 1 关注
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。
-
Maven
185 引用 • 318 回帖 • 348 关注
Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
-
etcd
5 引用 • 26 回帖 • 492 关注
etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。
-
旅游
85 引用 • 895 回帖
希望你我能在旅途中找到人生的下一站。
-
Rust
57 引用 • 22 回帖
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
-
Windows
215 引用 • 462 回帖
Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。
-
Swagger
26 引用 • 35 回帖 • 12 关注
Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。
-
Sillot
13 引用 • 3 回帖 • 26 关注
Sillot (汐洛)孵化自思源笔记,致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点
Github 地址:https://github.com/Hi-Windom/Sillot -
Java
3167 引用 • 8207 回帖
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于