模拟服务向Eureka注册

228 阅读2分钟

前言

在使用Eureka作为微服务注册中心时,可以自己调用Eureka提供的接口,模拟服务向注册中心注册

Eureka模拟注册

Eureka服务启动

启动一个Eureka注册中心,配置可以参考

#Eureka配置
eureka:
  instance:
    hostname: localhost #Eureka服务端实例名称
  client:
    register-with-eureka: false #是否向注册中心注册自己
    fetch-registry: false  #false表示自己为注册中心
    service-url:
      defaultZone: http://localhost:2001/eureka/

启动端口为2001,启动之后,访问地址

http://ip:端口

出现以下页面显示服务启动成功

image.png

获取Eureka注册列表

请求方式请求地址
Get/eureka/apps
可以获取Eureka服务列表,返回数据为

image.png

模拟服务注册

请求方式请求地址
Post/eureka/apps/{AppId}

在上面列表中参数解释

  • {AppID}:服务名称,对应spring.application.name参数值 body参数为
<instance>
<instanceId>HELLO1</instanceId>
<hostName>localhost</hostName>
<app>HELLO</app>
<ipAddr>192.168.69.182</ipAddr>
<status>UP</status>
<port enabled="true">8085</port>
<dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
<name>MyOwn</name>
</dataCenterInfo>
</instance>

image.png 成功的话,Eureka页面会出现服务

image.png 这个时候,获取服务列表会返回一堆数据详情

image.png

<applications>
    <versions__delta>1</versions__delta>
    <apps__hashcode>UP_1_</apps__hashcode>
    <application>
        <name>HELLO</name>
        <instance>
            <instanceId>HELLO1</instanceId>
            <hostName>localhost</hostName>
            <app>HELLO</app>
            <ipAddr>192.168.69.182</ipAddr>
            <status>UP</status>
            <overriddenstatus>UNKNOWN</overriddenstatus>
            <port enabled="true">8085</port>
            <securePort enabled="false">7002</securePort>
            <countryId>1</countryId>
            <dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
                <name>MyOwn</name>
            </dataCenterInfo>
            <leaseInfo>
                <renewalIntervalInSecs>30</renewalIntervalInSecs>
                <durationInSecs>90</durationInSecs>
                <registrationTimestamp>1733989836539</registrationTimestamp>
                <lastRenewalTimestamp>1733989836539</lastRenewalTimestamp>
                <evictionTimestamp>0</evictionTimestamp>
                <serviceUpTimestamp>1733989836539</serviceUpTimestamp>
            </leaseInfo>
            <metadata class="java.util.Collections$EmptyMap"/>
            <isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
            <lastUpdatedTimestamp>1733989836539</lastUpdatedTimestamp>
            <lastDirtyTimestamp>1733989836539</lastDirtyTimestamp>
            <actionType>ADDED</actionType>
        </instance>
    </application>
</applications>

模拟服务发送心跳

请求方式请求地址
Put/eureka/apps/{appId}/{instanceID}
在上面列表中参数解释
  • {appId}:服务名称,对应spring.application.name参数值
  • {instanceID}:实例名称,如果已经自定义instanceId则对应eureka.instance.instance-id参数值

使用Postman模拟发送心跳

image.png

更新服务上线状态

请求方式请求地址
Put/eureka/apps/{appId}/{instanceID}/status?value=DOWN

image.png 这个时候,服务会变成down

image.png status传UP

image.png 结果如下图所示

image.png

查询指定服务信息

请求方式请求地址
Get/eureka/apps/{AppId}

image.png

剔除服务

请求方式请求地址
DELETE/eureka/apps/{appId}/{instanceID}

image.png 这个时候,注册中心服务消失了

image.png

总结

eureka提供一些接口,可以提供进行使用