在微服务架构下,服务的诊断面临越来越大的挑战。通过配置本地注册中心,您可以在Cloud Toolkit中诊断微服务。目前Cloud Toolkit已支持诊断Dubbo和HSF框架的微服务应用,Spring Cloud框架的诊断功能还在开发中。

前提条件

在使用Cloud Toolkit进行微服务的诊断前,请完成以下工作:

配置并启动注册中心

为Provider和Consumer应用分别配置注册中心。

说明 除了可以使用Cloud Toolkit来配置注册中心外,您还可以在本地启动轻量级配置及注册中心,请参见启动轻量级配置及注册中心。如果您使用了独立实例来配置轻量级配置及注册中心,那您在步骤2中查看服务版本和服务分组信息时,请输入http://<实例IP地址>:8080来查看。

为Provider应用启动本地注册中心

  1. 在IntelliJ IDEA中打开Provider项目工程。
  2. 在IntelliJ IDEA顶部菜单栏中选择File > Settings
  3. Settings页面左侧导航栏选择Alibaba Cloud Toolkit > Microservice > Microservice
  4. 在注册中心配置页面选择使用本地注册中心,选择注册中心类型,然后单击启动
    配置完成后在Local Registry对话框中会出现本地注册中心已启动的提示。

为Consumer应用配置自定义注册中心

  1. 在IntelliJ IDEA中打开Consumer项目工程。
  2. 在IntelliJ IDEA顶部菜单栏中选择File > Settings
  3. Settings页面左侧导航栏选择Alibaba Cloud Toolkit > Microservice > Microservice
  4. 在注册中心配置页面选择加入自建Nacos注册中心,然后在右侧文本框中输入注册中心的IP地址,然后单击OK
    自定义注册中心

诊断微服务

HSF服务测试与Dubbo服务诊断操作一致,本文以Dubbo服务诊断为例。

  1. 进入微服务诊断页面。
    • 注解方式

      当您使用类似下述代码示例的注解方式时,请在包含注解的代码区域单击右键,然后在右键快捷菜单中选择Alibaba Cloud > Microservice Tools > Diagnostic

          @Reference(version = "1.0.0", check=false)
          private DemoService demoService;
      微服务诊断-注解方式
    • 配置文件方式

      当您使用类似下述代码示例的注解方式时,请在包含注解的代码区域单击右键,然后在右键快捷菜单中选择Alibaba Cloud > Microservice Tools > Diagnostic

      <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
             xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
             http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
          <context:property-placeholder/>
      
          <dubbo:application name="dubbo-echo-consumer"/>
      
          <dubbo:registry address="nacos://${nacos.address:127.0.0.1}:8848"/>
      
          <dubbo:reference id="demoService" check="false" interface="com.dubbo.example.DemoService" version="1.0.0"/>
      </beans>
  2. 服务诊断对话框中配置诊断参数,然后单击诊断
    服务诊断
    参数 描述
    注册中心 当在注册中心管理页面选择Join Custom Registry后,注册中心信息会自动填充。如果没有配置,您需手动输入注册中心地址IP地址:port,例如127.0.0.1:8080。
    服务信息 从正确入口进入后,服务信息会自动填入。其中,需要注意VERSION字段取值和GROUP字段取值与服务名的版本和分组正确匹配。例如服务名为:providers:com.dubbo.example.DemoService:1.0.0:dubbo,则说明服务信息为dubbo://com.dubbo.example.DemoService?VERSION=1.0.0&GROUP=dubbo。
    当微服务诊断成功时,会出现类似下图所示的日志信息。诊断成功

诊断日志

诊断是否能够连接到注册中心

通过日志可诊断本机到注册中心的网络状况,如果无法连接到注册中心,将会出现下图所示报错信息。

连接注册中心

当出现上图所示报错日志时,请核对注册中心IP和端口是否正确,如果诊断成功将会打印出注册中心的可用IP信息。

诊断是否存在可调用的服务

通过日志可诊断注册中心上是否存在可调用的服务,包括服务的接口信息、版本和分组等信息。如果无法发现服务,将会出现下图所示报错信息。

诊断是否存在可调用的服务

当出现上图所示报错日志时,请核对服务类型(HSF或Dubbo)、接口信息、版本和分组信息,如果诊断成功将会打印出注册中心的可调用服务。

诊断目标服务是否存在实例

通过日志可诊断目标服务是否存在实例,包括实例的IP和端口等信息。如果无法发现服务,将会提示没有发现服务对应的实例信息。

诊断是否能够连接到目标服务中的实例

通过日志可诊断本机是否能够访问目标实例。如果无法访问实例,将会提示无法连接实例。