应用开发问题咨询指引
开源社区链接
servicecomb-java-chassis、spring-cloud-huawei等SDK作为开源框架,版本的发布和维护都由开源团队负责,目前已经在开源社区积累了诸多问题的解决经验,若在开发使用过程中遇到问题,请通过如下链接检索历史问题、提交新问题和进行问题咨询:
- servicecomb-java-chassis开源框架
开源社区:https://github.com/apache/servicecomb-java-chassis/issues
开发者指导:https://servicecomb.apache.org/references/java-chassis/zh_CN/
- spring-cloud-huawei开源框架
开源社区:https://github.com/huaweicloud/spring-cloud-huawei/issues
参考文档:https://support.huaweicloud.com/intl/zh-cn/devg-servicestage/cse_04_0009.html
- 搜索小技巧:
使用站内搜索,提升准确性。比如服务报错:Load balancer does not have available server for client: default,可以使用如下搜索方式:
Load balancer site:bbs.huaweicloud.com或者Load balancer site:github.com/apache/servicecomb-java-chassis/issues
- servicecomb-java-chassis, spring-cloud-huawei均为开源软件,ServiceStage团队对其进行了插件扩展以接入云服务,如果遇到框架使用问题而非插件问题,请到对应开源社区提问。
关键信息
为了方便问题的快速定位,提issue时务必提供详细的关键信息,提供可以复现问题的Demo。
以servicecomb-java-chassis为例,请提供如下关键信息:
- 框架相关日志:默认框架日志会与业务日志一起打印,并且会在根目录下生成cse.log。若业务侧使用了log4j2或者logback等日志框架,需根据自定义的日志策略查找关键信息。
- 服务启动类问题关键信息:
表1 服务启动类问题关键信息 关键词
描述
choose org.apache.servicecomb
servicecomb-java-chassis支持两种rest通信通道,需要根据日志判断使用的通信通道。
choose org.apache.servicecomb.transport.rest.vertx.VertxRestTransport框架默认使用Rest over Vertx通信通道,即使用vertx作为http服务器。
choose org.apache.servicecomb.transport.rest.servlet.ServletRestTransport同时支持Rest over Servlet通信通道,即使用其他HTTP服务器,比如tomcat。
endpoint to publish
服务发布地址。
Register microservice instance success
服务实例注册成功的标志。
- 服务调用类问题关键信息:
表2 服务调用类问题关键信息 关键词
描述
find instances
消费端(发起调用的服务)在调用服务端(被调用的服务)之前,会先从微服务引擎的服务中心查询服务端的实例
accesslog
accesslog会记录调用该服务的请求源,API,状态码等,默认情况下不会开启该功能
accesslog的打印受通信通道和日志框架影响。若使用Rest over Vertx通信通道,accesslog是由Vertx记录,详细配置可以参考:https://servicecomb.apache.org/references/java-chassis/zh_CN/build-provider/access-log-configuration.html。
推荐accesslog日志格式:
servicecomb.accesslog.pattern: "%h - - %t cs-uri %s %B %D %H %SCB-traceId"
默认情况下会在根目录生成access.log,若业务侧使用了log4j2或者logback等日志框架,日志框架的切换可参考:https://servicecomb.apache.org/references/java-chassis/zh_CN/build-provider/access-log-configuration.html。
若使用Rest over Servlet通信通道,accesslog是由使用的HTTP服务器记录,需自行搜索资料开启。
例如springboot内置的tomcat,可以通过如下配置开启。
server: tomcat: accesslog: enabled: true pattern: '%h %l %u %t "%r" %s %b %D' directory: accesslogs buffered: false basedir: ./logs
- 服务启动类问题关键信息:
- 微服务引擎的版本和SDK的版本。微服务引擎版本可单击引擎名称查看。SDK版本可搜索groupId为org.apache.serivcecomb的依赖。