Eureka Server提供了一些REST端点。非JVM的微服务可使用这些REST端点操作Eureka,从而实现注册与发现。事实上,前文所讲的Eureka Client就是一个使用Java编写的、操作这些REST端点的类库。也可分析这些REST端点,编写其他语言的Eureka Client。
表4-1展示了Eureka提供的REST端点,可以使用XML或者JSON与这些端点通信,默认是XML。
表4-1 Eureka的REST端点一览表
(续表)
使用REST端点向Eureka Server注册微服务时,需要POST一个符合以下XSD的XML(或JSON)请求体。
表4-1中的app ID是应用程序的名称,instanceID是与实例相关联的唯一ID。在AWS环境中,instanceID表示微服务实例的实例ID,在非AWS环境则表示实例的主机名。
下面来使用REST端点注册微服务。
1.启动microservice-discovery-eureka。
2.编写一个符合上面XSD的XML,命名为rest-api-test.xml。
3.使用curl命令测试。
终端将输出类似如下的内容。
此时,查看Eureka Server首页,会发现微服务已经成功注册,如图4-8所示。
图4-8 Eureka Server上的微服务列表
在浏览器上输入地址 http://localhost:8761/eureka/apps/rest-api-test ,将看到类似如下的内容。
从中,可以看到此微服务的所有实例,以及实例的详细信息。
将上面注册的微服务实例注销。
将看到以下输出:
事实上,由于rest-api-test这个微服务并不存在,因此Eureka Server过一段时间后也会自动将该微服务注销。
●本节仅挑选了两个常用端点进行测试,限于篇幅,其他端点请各位读者自行测试。
●一些语言已有Eureka Client的开源实现,例如Node.js的Eureka Client( https://www.npmjs.com/package/eureka-js-client )。对于其他语言的Eureka Client,读者可在GitHub或其他平台搜索相关实现。
●本书使用的测试工具是cURL,该工具在Windows、Linux、Mac OS等平台均有对应版本。
●读者也可使用其他工具进行测试,例如PostMan等。图4-9是PostMan的测试界面,可使用它可视化地进行测试。
图4-9 PostMan测试界面