最后,我已经弄清楚如何使用Eureka服务器的REST URL调用取消操作.这适用于Spring Cloud Eureka服务器,但也适用于Netflix Eureka服务器.
取消操作的URL模式如下:
DELETE http://eureka_host:eureka_port/eureka/apps//
这是在Eureka REST operations页面上记录的方式,但是关于什么< instanceId>的清晰度很少.应该是.根据文档,< instanceId>是运行Eureka客户端的主机的主机名.这不起作用(IP地址或主机名).我尝试传入GET URL给我的相同值(例如,192.168.55.55)或localhost.那也行不通.我还尝试从GET输出传递instanceId值(这与eureka.instance.metadataMap.instanceId属性的值相同).那也没有用.我确实不得不尝试不同的组合来找到它. < instanceId>是主机名和实例ID的串联,用:分隔.例如,192.168.55.55:foo-app-some-random-str.
这是GET操作的示例输出,列出了在Eureka注册的活动实例:
192.168.55.55
FOO-APP
...
foo-app-f4ea7b06fc03a05a06900713f7526a5d
...
在这种情况下,cancel cURL命令将如下所示:
$curl -X "DELETE" http://eureka_host:eureka_port/eureka/apps/FOO-APP/192.168.55.55:foo-app-f4ea7b06fc03a05a06900713f7526a5d
这将按预期取消注册实例.
也就是说,我必须承认我没有太多关注Eureka服务器日志.当您注册Eureka客户端时,日志打印出实例的完全限定名称(FOO-APP / 192.168.55.55:foo-app-f4ea7b06fc03a05a06900713f7526a5d),我可以将其用作我的猜测.