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中配置。

...
Arthas Sep 2, 2021

arthas用来动态调试很好用

...
一致性hash Aug 23, 2021

给出一致性hash的代码

...
领域驱动设计 May 14, 2021

为什么要搞领域驱动设计

传统的软件开发模式有结构化设计,以数据为中心设计,面向对象设计。

  • 结构化设计:面向流程,面向过程的设计。先做A,再做B,最后做C。由过程之间的组合完成整体的系统功能
  • 以数据为中心设计:先设计数据库ER图,然后再进行设计。持久化数据在软件应用中加工组合修改,反馈给用户,修改持久化到数据库。
  • 面向对象设计:抽象出对象这个概念,使其在数据属性外增加职责。由对象之间协作完成整体的系统功能。

软件是对现实的模拟。软件设计的这种演进,归根结底原因是现在的软件所要模拟的现实越来越复杂,导致软件也越来越复杂。

...
Maven发布到中央仓库 Feb 2, 2021

记录下如何把自己的项目发不到maven中央仓库

...
Java管理扩展:通过MBean获取jvm运行情况 Jan 30, 2021

搞下jvm信息的监控

...
Prometheus Exporter Jan 27, 2021

prometheus监控比较火,接入prometheus监控的第一步就是提供expoter,这里就是记录下怎么提供。

...