在微服务架构下,服务的诊断面临越来越大的挑战。通过配置本地注册中心,您可以在Cloud Toolkit中诊断微服务。目前Cloud Toolkit已支持诊断Dubbo和HSF框架的微服务应用,Spring
Cloud框架的诊断功能还在开发中。
前提条件
在使用Cloud Toolkit进行微服务的诊断前,请完成以下工作:
配置并启动注册中心
为Provider和Consumer应用分别配置注册中心。
说明 除了可以使用Cloud Toolkit来配置注册中心外,您还可以在本地启动轻量级配置及注册中心,请参见
启动轻量级配置及注册中心。如果您使用了独立实例来配置轻量级配置及注册中心,那您在
步骤2中查看服务版本和服务分组信息时,请输入
http://<实例IP地址>:8080
来查看。
为Provider应用启动本地注册中心
- 在IntelliJ IDEA中打开Provider项目工程。
- 在IntelliJ IDEA顶部菜单栏中选择。
- 在Settings页面左侧导航栏选择。
- 在注册中心配置页面选择使用本地注册中心,选择注册中心类型,然后单击启动。
配置完成后在
Local Registry对话框中会出现
本地注册中心已启动的提示。
为Consumer应用配置自定义注册中心
- 在IntelliJ IDEA中打开Consumer项目工程。
- 在IntelliJ IDEA顶部菜单栏中选择。
- 在Settings页面左侧导航栏选择。
- 在注册中心配置页面选择加入自建Nacos注册中心,然后在右侧文本框中输入注册中心的IP地址,然后单击OK。
诊断微服务
HSF服务测试与Dubbo服务诊断操作一致,本文以Dubbo服务诊断为例。
- 进入微服务诊断页面。
- 注解方式
当您使用类似下述代码示例的注解方式时,请在包含注解的代码区域单击右键,然后在右键快捷菜单中选择。
@Reference(version = "1.0.0", check=false)
private DemoService demoService;
- 配置文件方式
当您使用类似下述代码示例的注解方式时,请在包含注解的代码区域单击右键,然后在右键快捷菜单中选择。
<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>
- 在服务诊断对话框中配置诊断参数,然后单击诊断。
参数 |
描述 |
注册中心 |
当在注册中心管理页面选择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和端口等信息。如果无法发现服务,将会提示没有发现服务对应的实例信息。
诊断是否能够连接到目标服务中的实例
通过日志可诊断本机是否能够访问目标实例。如果无法访问实例,将会提示无法连接实例。