
# 应用开发问题咨询指引
#### 开源社区链接
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/>
  微服务引擎论坛 ：<https://bbs.huaweicloud.com/forum/forum-622-1.html>
  
- spring-cloud-huawei开源框架 开源社区：<https://github.com/huaweicloud/spring-cloud-huawei/issues>
  参考文档：<https://support.huaweicloud.com/devg-servicestage/cse_04_0009.html>
  
![](https://support.huaweicloud.com/servicestage_faq/public_sys-resources/note_3.0-zh-cn.png)
- 搜索小技巧： 使用站内搜索，提升准确性。比如服务报错：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.servicecomb的依赖。
 
