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图,然后再进行设计。持久化数据在软件应用中加工组合修改,反馈给用户,修改持久化到数据库。 面向对象设计: ...
K8s Apr 19, 2021 new post with no content 控制面 nodes 控制面 关于集群的全局决策,例如调度。一键搭建脚本通常将控制面的组件放在一台机器上 Kube-apiserver 是k8s的控制面的前端,暴露k8s的api 可水平扩展,部署多台kube-apiserver来负载均衡 etcd k8s数据存储 kube-scheduler 监视没有分配node的pod,并且为其分配node kube-controller-manager 运行controller进程的组件 逻辑上,不同的控 ...
Maven发布到中央仓库 Feb 2, 2021

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

...