企业应用性能优化与监控指南
1. 日志记录(Journaling)
当业务逻辑需要日志记录时,使用日志框架并非最佳选择。日志记录的需求可能源于审计法规,如交易系统的情况。若业务逻辑需要日志记录,应将其视为业务需求。现有日志记录技术能比传统日志更高效地同步持久化所需信息,例如 Chronicle Queue,它能实现高吞吐量和低延迟的消息存储。
应用程序领域可以将信息建模为领域事件,并直接将其持久化到日志记录解决方案中。另一种方法是基于事件溯源模型构建应用程序,这样审计信息就成为应用程序模型的一部分。
2. 追踪(Tracing)
追踪用于重现特定场景和请求流程,在追溯复杂应用程序过程时很有帮助,尤其是涉及多个应用程序和实例时。但需注意,追踪系统需要有业务需求,而非仅仅是技术需求。
传统上,使用日志文件进行追踪,通过记录每个方法或组件调用的开始和结束以及关联 ID(如线程标识符)。但使用日志文件进行追踪存在诸多问题,如大量日志条目写入文件,文件 I/O 和日志格式序列化开销大,影响性能,且后续还需解析大量数据。
现代有多种追踪解决方案可减少对系统性能的影响,如 OpenTracing。它是云原生计算基金会的标准、中立的追踪技术,定义了追踪的概念和语义,支持分布式应用程序的追踪,由 Zipkin、Jaeger 或 Hawkular 等多种追踪技术实现。
2.1 OpenTracing 示例
OpenTracing 的层级追踪由多个跨度(span)组成,一个跨度可以是另一个跨度的子跨度或跟随其后。一个 OpenTracing API 跨度包括时间跨度、操作名称、上下文信息以及可选
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



