前几天在 github 上冲浪的时候,发现了两个宝藏货色。
我也不藏着掖着了,拿进去给大家分享一下。
这两个宝藏是对于 arthas 和 SOFARegistry 的,这两个货色都是阿里开源的我的项目。
arthas 大家应该都比拟耳熟能详了,晓得它是阿里搞进去的一款 Java 诊断工具。
而 SOFARegistry 是个啥玩意?如同没怎么据说过呢?
我接触这个货色的工夫也不算长,然而我大略晓得它是个什么货色,我感觉是一个轮子,然而这个轮子还挺厉害的。
不焦急,等下就给你摆一摆。
arthas
arthas 这个玩意,我都不记得我之前的文章中呈现了多少次了。基本上都是对于它的应用实际操作案例或者说是官网提供的练手 Demo。
它的应用范畴也还是十分的宽泛:
那么,我在它的 github 上又发现了什么宝藏货色呢?
就藏在它的 issue 的 Labels 外面:
点开 Labels,你会发现有个叫做 user-case 的标签:
这个标签下的 issues,就是我想说的第一个宝藏:
github.com/alibaba/art…
我给你截屏第一页的内容,你看看是不是很有一种想要点进去看看具体是啥的欲望:
比方给你看看工行的这个 user-case:
github.com/lyghzh/pub/…
我之前其实始终认为大家会感觉 Arthas 在生产上运行其实是一件十分危险的事件。
它就是一把双刃剑,用的好了,早点上班,用的不好,说不定背个生产事变。
所以,采取因噎废食的办法,罗唆就不应用了。
工行,作为一个银行,在这个方面的思考必定也更加的多。
在他们的落地艰难点上,首当其冲的就是“信息安全”的问题,这是它们的根底红线,也是银行的立根之点:
那么它是怎么在生产上应用 Arthas 呢?
在这个 case 外面,给出了这个问题的答案。
咱们设计了一套笨重的架构,让开发人员以 Web UI 的形式,便捷、直观的应用各类在线诊断能力。那么咱们是怎么做的呢?
基于 Arthas 的性能,再次封装了一个 web UI 页面进去,藏在这个页面背地的接口,能够对执行后果进行剪裁和批改,解决成 json 格局数据返回给平台做展现。
文章中除了介绍整体架构之外,还提供了理论应用的成果。
比方控制面板看起来就很眼生的样子:
就是基于 Arthas 原生的响应,搞了一个展现页面。
页面上的这些数据都是 Arthas 返回的:
还有反编译的性能:
然而在文章中并没有看到热加载相干的内容,我猜必定是对于这类危险的性能,从 web 页面上就进行了屏蔽。
在这个 issues 上面,我还发现他人提到另外一个相似的我的项目:
这是去哪儿开源的一个 Java 利用诊断工具:
不延长了,学不过去了。
再比方这个案例:
github.com/alibaba/art…
而后他应用 Trace 一点点的追踪工夫耗费比拟大的办法,再一点点的进行修复。
通过了四次优化之后,雷同申请的调用链路耗时,从最开始的 343ms 升高到了 27ms,你说这不香吗?
而后,他给出了论断,也就是这次优化的点:
你能够发现其实都不是什么特地大的优化,就是一些咱们平时在应用的细枝末节的货色。
最初,他还写了一个“强烈推荐”:动静追踪技术漫谈。
好吧,这个也是我很久之前就珍藏了的网站,不藏着了。也拿进去一并分享了:
blog.openresty.com.cn/cn/dynamic-…
这个博客外面的文章品质十分的高,博客的客人是章亦春,他是开源我的项目 OpenResty 的创始人,同时也是 OpenResty Inc. 公司的创始人和 CEO。
咱就是说,大佬背书,释怀浏览。
这里我只是在第一个宝藏中轻易挑了两个案例进去,剩下的你本人去开掘吧。
SOFARegistry
SOFARegistry 是个啥?
其实我了解它就是一个注册核心的轮子。或者更具体一点的说就是具备阿里特色的 Eureka。
这是它的 github 地址:
github.com/sofastack/s…
你看到其中的 sofastack 了吗?
SOFARegistry 只是一个棋子,sofastack 才是棋盘。
这是一个 Stack,是一个技术栈,是一个金融畛域的架构计划。
它上面的我的项目十分多,从次要我的项目的名称命名,什么 xxxBoot,xxxRPC,xxxRegistry 你就能够看出,用这些我的项目咱们能够搭建出一个残缺的我的项目:
对于 SOFARegistry 的宝藏也藏在它的 Labels 外面:
github.com/sofastack/s…
这个叫做 event/source-code-analyze 的 Label,你别看没几个货色,然而外面全是源码剖析。
而且是官网发动的流动,文章内容会有专人 review,力保准确性:
这次一共公布了 9 个源码解析的工作:
工作难度有高有低。依据工作难度有不同的处分措施:
有机会成为社区的 Contributor 或者间接是 Member,还是相当有吸引力的。
比方咱们看一下对于数据倒排索引的这个工作:
github.com/sofastack/s…
它的 issues 形容外面也指出了须要写什么内容,去看哪一部分的代码。
指路曾经指的很明确了。
最初解析文章提交的格局是 md 格局:
咱们能够间接下载下来进行浏览。
到时候对于想要深刻了解 SOFARegistry 的同学来说就是一个很好的切入口。
尽管 SOFARegistry 晓得的人不对,然而我还是想把 SOFARegistry 的这个流动写进去,让更多的人晓得他们有这样的流动。
因为我感觉这个流动十分的好,源码解析,是我看到一种全新的参加开源我的项目建设的形式。
最初,对于这两个宝藏,通知我一个什么情理?
它通知我:逛开源我的项目的时候要多留神它的 Labels,说不定藏着什么好货色。反正我以前是很少关注 Labels 的,我始终认为只有我的项目维护者才关怀 Labels。