• HZERO微服务平台03: 平台理服务、服务注册


    概述

    hzero的微服务体系里, 服务除了要注册到注册中心(nacos等), 还注册到admin服务(平台治理服务);
    admin服务接收到注册信息, 负责完成路由刷新、权限刷新、swagger信息刷新, 任意一项刷新失败都会导致服务出现异常现象;
    由于刷新是异步执行, 且涉及的服务较多, 出现问题通常不好排查; 详细了解注册流程有助于快速排查定位;

    调用过程阅读方法: 如何以纯文本方式简单快速记录java代码的调用过程

    服务的注册流程:

    注册成功的表现:

    • 服务没有不停地报错
    • swagger中可以看到服务并且可以调用接口;

    注册失败时的排查方法

    检查注册流程每个环节, 与之对应的排查过程:

    代码调用过程

    调用过程阅读方法: 如何以纯文本方式简单快速记录java代码的调用过程

    业务服务:

    //hzero-boot-admin.jar 
    //bean注册: AdminRegistrationAutoConfiguration
    AdminAutoRegistration#start  //SmartLifecycle.start
    AdminAutoRegistration#register
    retryAlwaysUntilSuccess //死循环, 从一启动就开始注册, 直到成功
    AdminTransport#transport 注册到admin
    AdminTransport#requestAdmin
        //请求的地址: post 8061端口: /actuator/service-init-registry/register
        //requestBody: org.hzero.boot.admin.registration.Registration 实例
    response = (Response)this.httpTransporter.transport(new StaticEndpointHttpRequest(instance, staticEndpoint, requestBody, Response.class));
    

    注册接口:

    StaticEndpoint#ADMIN_SERVICE_REGISTER
    ADMIN_SERVICE_REGISTER("/actuator/service-init-registry/register", HttpMethod.POST, true, "HZERO治理服务注册服务的api接口"),
    

    doc接口:

    /v2/iosp/api-docs
    ...swagger.controller.CustomController.getDocumentation
    
    /v2/api-docs
    springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation
    

    admin服务:

    ServiceInitRegistryEndpoint#register
    RestServiceInitRegistry#register
    RestServiceInitRegistry#assertHealth
    RestServiceInitRegistry#isHealth
    restTemplate.exchange(healthUrl, HttpMethod.GET, null, Map.class);  //调用服务的健康检查接口
    
  • 相关阅读:
    Lua metatable & metamethod
    lua 中的点、冒号与self
    Eclipse 快捷键
    logging的使用
    URL转义字符
    UnicodeEncodeError: ‘ascii’ codec can’t encode
    Baidu URL的部分参数
    使用JS伪造Post请求
    print 不换行
    exception keynote
  • 原文地址:https://www.cnblogs.com/QIAOXINGXING001/p/15560065.html
Copyright © 2020-2023  润新知