For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
异常是我们在学习软件编程开发的时候会学到的一个编程常见问题,今天我们就通过案例分析来简单了解一下,编程异常问题监控与解决方法都有哪些。
一、捕获异常
异常捕获也容易走两种极端,一种是每个方法都try-catch,一个方法里有多组。另一种是整个链路都没有一个try-catch,处于裸奔的状态。那么到底该如何进行异常捕获呢?先看一下捕获异常的目的:
1.对异常进行预判处理,让流程得以继续下去;
2.快速发现并定位问题,保证系统的稳定性;
基于异常处理的目的,对应的处理策略也就清晰了:
1.如果是为了流程继续下去,那么异常就必须在对应的节点捕获并处理;
2.如果是为了快速发现定位问题,那么就可以通过在调用入口处进行统一捕获处理,异常堆栈里会有详细的异常的原因;
总之,异常是需要捕获的,但是具体需要在哪里捕获,如何捕获,我们可以按照目的进行灵活处理。
二、处理异常
1.业务和系统异常要留有痕迹,方便日后问题定位和统计分析,比如日志,消息等;
2.对各类异常进行有规则的编码,可以快速定位问题,方便设置应急预案,规则可以参照HTTP的请求响应编码;
3.打印异常堆栈信息,这是快速定位问题原因的重要手段;
4.对异常数据进行纵向统计和对比,方便识别系统健康状态;
三、日志管理
1.统一日志框架,建议使用SLF4J日志门面框架,具体实现选择Log4j2、Logback等;
2.配置日志框架,包括日志输出格式、输出位置、输出级别,输出方式(异步打印)等;
3.使用不同的级别来记录不同类型的信息,并分别打印到不同的文件中;
4.定期检查和清理日志文件,以避免占用过多磁盘空间;
5.根据需要,可以将日志信息发送到其他系统或者进行分析处理,以便更好地监控和管理系统;
6.必要的情况下,建设动态调整日志级别的能力;
四、监控管理
1.系统性能监控:监控系统的CPU、内存、磁盘、网络等资源的使用情况,以及应用程序的运行状态。如Nagios、Zabbix;
2.日志监控:监控系统和应用程序的日志信息,引入traceId、业务身份Id,及时发现异常情况。如ELK(Elasticsearch、Logstash、Kibana);
3.安全监控:监控系统和应用程序的安全状态,及时发现潜在的安全威胁。如Snort、Suricata;
4.业务监控:监控业务系统的各项指标,访问量、响应时间、错误率等,及时发现业务异常情况。如Grafana、Prometheus;
5.调用链路跟踪:可以跟踪一个请求在整个分布式系统中的调用链路,记录每个服务节点的处理时间和状态,并将这些信息聚合起来,形成一个完整的调用链路图,以便于分析和排查问题。如:Zipkin、SkyWalking;
6.监控预警:各种监控工具是辅助快速定位问题的有效途径,要想一时间发现问题,完善有效的预警触达机制必不可少。如邮件,企业微信,短信,电话等;
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。