java - 分布式集群环境的一些问题

查看:82
本文介绍了java - 分布式集群环境的一些问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1、如何在业务中发现技术瓶颈所在的位置(是数据库瓶颈还是应用瓶颈之类)
2、分布式集群环境怎么确定用户提出的bug所在的位置?(哪台机器、哪段代码)
3、确定之后如何调试呢

解决方案

1.链路监控

当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。(引用 https://bigbully.github.io/Da... 论文)
由 CNCF 基金会管理的 http://opentracing.io/ 项目, 就是开源的链路追踪协议, 目前已经支持所有主流语言的实现

通用链路监控我们可以很清楚的看到各自部件执行所需要的时间, 确定项目的瓶颈

2.日志

分布式日志解决方案也有很多, 目前我们是使用的 ELK(ElasticSearch, Logstash, Kibana) 通过Kibana搜索日志可以很清楚的知道日志的来源

至于要确定哪段代码出问题, 这个要看打印的日志是否详细准确, 打个简单的比方如果你打印出堆栈信息那我们可以通过堆栈很容易确认错误的调用链路及相关的代码范围. 如果你的日志都没有打印什么有用的信息, 那只能逐一排除了, 打日志是一个看似简单实则很考验能力的一件事情, 如果你什么都打那日志太多, 可能会产生很多无用的垃圾日志, 这日志对于你的问题定位没有什么帮助, 如果你打印的太少或者日志打印的都不在点上, 那出现问题你又无法下手. 人认为打日志是一个技术活, 这需要经验的积累与沉淀.

这篇关于java - 分布式集群环境的一些问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆