更新时间:2023-10-30 GMT+08:00

应用开发问题咨询指引

开源社区链接

servicecomb-java-chassis、spring-cloud-huawei等SDK作为开源框架,版本的发布和维护都由开源团队负责,目前已经在开源社区积累了诸多问题的解决经验,若在开发使用过程中遇到问题,请通过如下链接检索历史问题、提交新问题和进行问题咨询:

  • 搜索小技巧:

    使用站内搜索,提升准确性。比如服务报错: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为例,请提供如下关键信息:

  1. 框架相关日志:默认框架日志会与业务日志一起打印,并且会在根目录下生成cse.log。若业务侧使用了log4j2或者logback等日志框架,需根据自定义的日志策略查找关键信息。
    1. 服务启动类问题关键信息:
      表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. 服务调用类问题关键信息:
      表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
  2. 微服务引擎的版本和SDK的版本。微服务引擎版本可单击引擎名称查看。SDK版本可搜索groupId为org.apache.serivcecomb的依赖。