我是新的微服务,正在阅读有关发现服务器的一些示例,我看到我们可以通过使用url来调用另一个微服务api,例如:
http://inventory-service/api/inventory/{productCode}
。
“库存服务”是我在发现中注册的服务实例。
所以我的问题是,使用呼叫目录host:port的serviceId intead有什么好处:
http://localhost:9009/api/inventory/ {productCode}。
答案 0 :(得分:0)
假设您通过在src / main / resources / bootstrap.properties中配置Eureka serviceUrl在Eureka服务器上注册清单服务。
SharedPreferences
然后通过运行以下命令来构建清单服务并启动它的2个实例。
SharedPreference.Editor pref = context.getSharedPreferences("prefs", MODE_PRIVATE).edit();
pref.clear();
pref.commit();
当您访问Eureka仪表板http://localhost:8761/时,您将看到2个注册的库存服务实例。
如果您想从消费者应用程序中应用Client Load Balancing,则需要这样的配置:
spring.application.name=inventory-service
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
如果要启动新实例,则需要在使用者配置中注册它们。
使用ServiceID,您不必担心,因为所有实例都将使用相同的标识符进行注册。它将自动添加到可用服务器列表中。这是使用ServiceId代替主机名的优势之一