浅析 SOFA 注册中心数据同步
本篇主要对 SOFARegistry 的数据同步模块进行解析,对于注册中心的概念以及 SOFARegistry 的基础架构不做过多阐述,相关介绍可以见海量数据下的注册中心 - SOFARegistry 架构介绍 这篇文章。
本篇主要对 SOFARegistry 的数据同步模块进行解析,对于注册中心的概念以及 SOFARegistry 的基础架构不做过多阐述,相关介绍可以见海量数据下的注册中心 - SOFARegistry 架构介绍 这篇文章。
关于 Object 的 finalize 方法,在日常开发中可能有超过 99% 的人都没有关注过,因为业务开发很少有重写 finalize 方法的场景;开发者对于 finalize 的认知大多在是“面试八股文”中,而且也不乏见到将 finalize、finally 以及 final 放在一块比较的 case,面试官可能是出于对初学者 java 基本语言知识的考量,但是这真的有意义吗?
log4j2 相关类在 sofaark 插件中是导出的,因此当出现 log4j2 的类需要被加载时,会委托给 PluginClassLoader 进行加载。
SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 TraceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的,这些链路数据可用于故障的快速发现,服务治理等。
GITHUB 地址:https://github.com/sofastack/sofa-tracer/pulls (欢迎 star)
官方文件地址:https://www.sofastack.tech/projects/sofa-tracer/overview/
2018 年末时至 2019 年初,SOFA 团队发起过 剖析-sofatracer-框架 的源码解析系列文章。这个系列中,基本对 SOFATracer 所提供的能力及实现原理都做了比较全面的分析,有兴趣的同学可以看下。
SOFAARK 是一个轻量级的类隔离框架,其有两个基本的能力:解决依赖包冲突和多应用(模块)合并部署。本篇将从解决依赖角度来说明下 SOFARK 插件的基本使用规则。
下图是官方文档中提供的用于描述依赖包冲突的一个场景:
SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的
traceId
将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的。这些日志可用于故障的快速发现,服务治理等。
从 RoadMap 和 PR 来看,目前 SOFATracer 已经支持了丰富的组件插件埋点。
Spring Boot
提供了一个基础的健康检查的能力,中间件和应用都可以扩展来实现自己的健康检查逻辑。但是 Spring Boot 的健康检查只有 Liveness Check
的能力,缺少 Readiness Check
的能力,这样会有比较致命的问题。当一个微服务应用启动的时候,必须要先保证启动后应用是健康的,才可以将上游的流量放进来(来自于 RPC,网关,定时任务等等流量),否则就可能会导致一定时间内大量的错误发生。