18岁以前的我 Apr 12, 2022 我是溧阳人。小学老师说溧阳是鱼米之乡,“江南可采莲,莲叶何田田”,而我所见河流不多,居民也不以鱼米为生,只有春汛的时候,肉眼可见的溪流变得湍急,突然的一天就快漫过了堤岸,那些小河才有了一些些的存在感。至于船舶,那是干“偷鱼”营生的人和十几公里外的大河才有的东西。 我的求学生涯是从永和乡、再到上兴镇、然后溧阳市、最后到省会 ...
Windows WSL2使用 Apr 6, 2022 wsl全称是windows的linux子系统,可以理解为在你的windows电脑上提供一个linux的工作环境,举个简单的例子是:windows没有bash,执行不了shell脚本,但是有了wsl之后,就有了bash。注意,wsl不是虚拟机,wsl不是和windows隔离的,所以是能操作windows的文件的。从另一个 ...
Java自定义Classloader Mar 7, 2022

看看怎么做类加载隔离

...
Java Agent实现指南 Mar 7, 2022

Java Agent是字节码修改技术,Mtrace使用Java Agent修改字节码来实现trace的跨线程传递,opentelemetry也通过Java Agent来实现该需求。

...
Opentelemetry是怎么做链路追踪的 Dec 12, 2021

云原生可观测技术是云原生下很火的一个命题,opentelemetry的定位是统一metrics,trace和log的协议、api、sdk和exporter,他越来越成为云原生技术体系下的可观测性标准。这个博客就是来探究下opentelemetry是什么,做什么,怎么做的。

OpenTelemetry is a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior.

上面是opentelemetry官网对自己的定位。抽取一下关键词,opentelemetry仅提供了api和SDK,不负责后端实现(后端由prometheus、jaeger等实现),用这些api和SDK,你可以做性能数据埋点,生成、收集和导出(generate, collect, and export)监控数据。对这段话最终的理解是opentelemetry只做SDK层面的事,职责的边缘是export数据即止。

...
Springboot内置Tomcat的配置 Sep 27, 2021 背景:需要提供一个配置服务给60w+机器,没台机器每分钟请求一次拉取最新配置。springboot的默认tomcat配置是不行的,研究下tomcat有哪些配置项,以及如何在springboot中配置。 如何在springboot中修改tomcat的配置 springboot官方文档告诉我们可以在application.ym ...
Rust学习路径 Sep 22, 2021

为什么学习rust?

  • 高性能:Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。
  • 可靠性:Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。
  • 生产力:Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。
...
Arthas Sep 2, 2021

arthas用来动态调试很好用

...
一致性hash Aug 23, 2021

给出一致性hash的代码

...
领域驱动设计 May 14, 2021 为什么要搞领域驱动设计 传统的软件开发模式有结构化设计,以数据为中心设计,面向对象设计。 结构化设计:面向流程,面向过程的设计。先做A,再做B,最后做C。由过程之间的组合完成整体的系统功能 以数据为中心设计:先设计数据库ER图,然后再进行设计。持久化数据在软件应用中加工组合修改,反馈给用户,修改持久化到数据库。 面向对象设计: ...