前言
在使用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:端口
出现以下页面显示服务启动成功
获取Eureka注册列表
| 请求方式 | 请求地址 |
|---|---|
| Get | /eureka/apps |
可以获取Eureka服务列表,返回数据为 |
模拟服务注册
| 请求方式 | 请求地址 |
|---|---|
| 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>
成功的话,
Eureka页面会出现服务
这个时候,获取服务列表会返回一堆数据详情
<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模拟发送心跳
更新服务上线状态
| 请求方式 | 请求地址 |
|---|---|
| Put | /eureka/apps/{appId}/{instanceID}/status?value=DOWN |
这个时候,服务会变成
down
status传
UP
结果如下图所示
查询指定服务信息
| 请求方式 | 请求地址 |
|---|---|
| Get | /eureka/apps/{AppId} |
剔除服务
| 请求方式 | 请求地址 |
|---|---|
| DELETE | /eureka/apps/{appId}/{instanceID} |
这个时候,注册中心服务消失了
总结
eureka提供一些接口,可以提供进行使用