开发常见问题|学习笔记

本文涉及的产品
日志服务 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 已经提供的一些相关的容器参数配置。

相关实践学习
通过EDAS实现K8s微服务应用的金丝雀发布
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ACK Serverless,体验微服务应用的部署、访问和高级发布能力。
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 
相关文章
|
前端开发
前端学习笔记202307学习笔记第六十天-Reconciler架构1
前端学习笔记202307学习笔记第六十天-Reconciler架构1
57 0
前端学习笔记202307学习笔记第六十天-Reconciler架构1
|
前端开发
前端学习笔记202307学习笔记第六十天-Reconciler架构2
前端学习笔记202307学习笔记第六十天-Reconciler架构2
66 0
|
8月前
|
SQL Java API
《Java开发手册灵魂13问》正式上线,带你剖析阿里巴巴的开发细节
一线大厂怎么用Java?看阿里技术专家给你分析!《〈Java开发手册(泰山版)〉灵魂13问》电子书正式上线带你剖析阿里巴巴一线团队开发思维。
|
前端开发
前端学习笔记202307学习笔记第六十天-Reconciler架构7
前端学习笔记202307学习笔记第六十天-Reconciler架构7
76 0
|
前端开发
前端学习笔记202307学习笔记第六十天-Reconciler架构8
前端学习笔记202307学习笔记第六十天-Reconciler架构8
63 0
|
小程序 NoSQL Serverless
《五天玩转EMAS Serverless》——第三节 实战:小程序疫苗预约-框架搭建&数据库管理【下】
本文整理自EMAS Serverless讲师柳色,在《5天玩转EMAS Serverless训练营》的分享。本篇内容主要分为五个部分: 1.小程序疫苗预约项目介绍 2.业务场景设计 3.数据库设计 4.数据操作命令学习 5.云数据库控制台功能介绍
142 0
|
存储 JSON NoSQL
《五天玩转EMAS Serverless》——第三节 实战:小程序疫苗预约-框架搭建&数据库管理【中】
本文整理自EMAS Serverless讲师柳色,在《5天玩转EMAS Serverless训练营》的分享。本篇内容主要分为五个部分: 1.小程序疫苗预约项目介绍 2.业务场景设计 3.数据库设计 4.数据操作命令学习 5.云数据库控制台功能介绍
172 0
|
存储 小程序 前端开发
《五天玩转EMAS Serverless》——第三节 实战:小程序疫苗预约-框架搭建&数据库管理【上】
本文整理自EMAS Serverless讲师柳色,在《5天玩转EMAS Serverless训练营》的分享。本篇内容主要分为五个部分: 1.小程序疫苗预约项目介绍 2.业务场景设计 3.数据库设计 4.数据操作命令学习 5.云数据库控制台功能介绍
157 0
|
小程序 定位技术 API
幼儿园小程序实战开发教程(终篇)
幼儿园小程序实战开发教程(终篇)
幼儿园小程序实战开发教程(终篇)
|
弹性计算 分布式计算 NoSQL
开发者社区精选直播合集(三十四)| 数据迁移工具与实践
本文档围绕如何将您的数据迁移到阿里云,提供了多个场景的实践方案及工具
开发者社区精选直播合集(三十四)| 数据迁移工具与实践

热门文章

最新文章