开发常见问题|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习开发常见问题

开发者学堂课程【企业级分布式应用服务 EDAS 使用攻略:开发常见问题】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/359/detail/4216


开发常见问题

内容介绍:

一、应用报错

二、HSF 服务调用出错

三、容器参数配置


一、应用报错

进入官网的详情页,打开 EDAS 开发者指南,点击查看最后一大部分 FAQ 查看 EDAS日志说明。开发中遇到的很多问题,都可以通过查看相关日志,找到问题所在进而解决问题。

EDAS 日记包括4个日志文件,通过前2个日志文件是在 tomcat 下的 cattalina.out 和localhost.log,通过这两个日志文件即可查询得知应用在启动过程中报错的原因,这两个日志文件的目录分别为:“/home/admin/taobao-tomcat-production-××××/logs/catta

lina.out”和“/home/admin/taobao-tomcat-production-××××/logs/localhost.log.×××”

比较通常的错误,如 no search method 或class not found 等通用错误,都可以在网上找到解决方案。此外,应用组件中报出的错误需要根据业务实际情况进行check。

后面的两个日志文件为 config.client.log 和 hsf.log, 这两个日志文件的目录分别为”/home/admin/configclient/logs/config.clien

t.log”和“/home/admin/logs/hsf/hsf.log”当应用在 HSF 服务在发布、注册会校用过程中出现的错误都会出现在这两个日志文件中。

总之,当应用报错时,可以在log中查询报错的原因,进而在网站上查询解决方法,或者查看应用的业务逻辑是否存在异常状态。

 

二、HSF服务调用出错

如 Consumer 调用 Provider 时可能会存在错误,这些错误可以通过 hsf.log 查询,或者若本地就存在 log 的输出,那本在本地的 log 输出中即可查询到错误原因。以下为通常情况下,HSF 服务调用报错的情况(每种错误都有不同的错误编码):

1.错误编码:HSF-0001

即无法找到调用的服务目标地址,需要使用的目标服务为:××××组别为:××××

解决方案:

(1)环境无关

①检查发布者和消费者配置的服务名称、版本号、组别三者是否一致(大小写也要相同,且不能有空格)

②服务调用太快(一般不会发生,可作为参考),在 configserver 将地址推送过来之前就发起调用导致出错,在服务消费者的配置项里添加 maxWaitTimeForCsAddress的相关配置。

(2)公共云、金融云、私有域等生产环境

①检查服务是否存在

②检查服务分组是否创建

③检查鉴权是否失败

通过以上方法,即可基本确定HSF服务调用报错的原因,进而解决问题。

2.错误编码:HSF-0002

即 HSF 服务调用时,消费端提示 HSFTimeOutException 报错,出现该错误的原因可能为:

(1)消费端调用服务端时,耗时大于了设置的超时时间,可能是由于 Provider 调用方法内部出错,导致无法返回以致超时;

(2)偶然情况下,两端出现 GC、检查服务端和客户端 gc 日志,耗时很长的 gc 导致超时;

3.错误编码:HSF-0021

即 [HSF-Provider]HSF thread pool is full,可以通过优化服务端的性能代码解决该问题。该错误主要是由于服务器端某个服务器处理速度过慢,不能及时处理客户端的请求,导致服务端业务执行的线程池达到最大值600(默认值),HSF 默认会 dump文件:

/home/admin/logs/hsf/HSF_JStack.log,查看此文件的 HSFBizProcessor.××× 线程模块信息,一般此时可以观察到具体是哪一层的业务逻辑 hang ,进而分析性能瓶颈,解决实际问题。

其他不常见的错误不作一一说明,可参照 EDAS 的 Trouble Shooting 进行解决方案的分析。


三、容器参数配置

在应用软件时,可能会对容器的参数进行配置,如最基本的 gvm 参数设置可根据 ECS 的配置及具体的业务需要 gvm 参数进行设置,通过 EDAS 即可进行设置。

也可能需要对 Tomcat 参数进行设置,如进行线程池的配置或调用 EDAS 已经提供的一些相关的容器参数配置。

相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
相关文章
|
6月前
|
小程序 开发者
4月开发者日回顾丨小程序开发常见问题解析
4月开发者日回顾丨小程序开发常见问题解析
82 0
|
3月前
|
缓存 搜索推荐 数据库连接
FastAPI 的插件化也太牛了吧!轻松打造可扩展 Web 应用,让你的开发如虎添翼,快来感受这神奇魅力!
【8月更文挑战第31天】在互联网迅速发展的今天,Web应用需求日益多样化。FastAPI作为一种高效灵活的Python Web框架,通过插件化设计帮助开发者轻松构建可扩展应用。插件化让开发者能够根据需求选择合适模块,如用户认证、支付处理等,而无需大幅改动核心代码。这种方式不仅提高了开发效率,还增强了应用的稳定性和适应性,使FastAPI成为未来Web开发的理想平台。
78 0
|
6月前
|
测试技术 持续交付 C#
C#程序基础开发入门学习笔记
C#是一种现代的、面向对象的编程语言,广泛应用于Windows应用程序开发、游戏开发(尤其是Unity引擎)、Web应用程序以及跨平台应用等。
85 0
|
6月前
|
JSON 开发者 数据格式
揭秘5.3k⭐开发者的秘密武器:it-tools在线工具集,你不可不知!
揭秘5.3k⭐开发者的秘密武器:it-tools在线工具集,你不可不知!
60 0
|
XML IDE 编译器
【C++】C++ 基础进阶【二】开发技巧
C++基础进阶,关于开发环境开发工具的一些便捷使用方式,提高生产力
168 0
【C++】C++ 基础进阶【二】开发技巧
|
前端开发
前端学习笔记202304学习笔记第八天-web前端学习-写架构设计文档1
前端学习笔记202304学习笔记第八天-web前端学习-写架构设计文档1
220 0
|
前端开发 API
微搭低代码零基础入门课(第二课)
微搭低代码零基础入门课(第二课)
微搭低代码零基础入门课(第二课)
|
小程序 JavaScript 前端开发
微搭低代码零基础入门课(第三课)
微搭低代码零基础入门课(第三课)
微搭低代码零基础入门课(第三课)
|
数据可视化
微搭低代码零基础入门课(第五课)
微搭低代码零基础入门课(第五课)
微搭低代码零基础入门课(第五课)
|
存储 小程序 JavaScript
微搭低代码零基础入门课(第四课)
微搭低代码零基础入门课(第四课)
微搭低代码零基础入门课(第四课)
下一篇
无影云桌面