Eureka
Eureka 是 Netflix 的服务注册组件。
Eureka 分为 Eureka Client 和 Eureka Server 两部分。
Eureka Client
- 使用
org.springframework.cloud:spring-cloud-starter-netflix-eureka-client
引入 Eureka Client。 - 在
application.properties
中配置 Eureka。
spring.application.name=store
# Eureka服务地址
eureka.client.service-url.defaultZone=http://localhost:8110/eureka/
- 启动类使用
@EnableEurekaClient
配置启用 Eureka Client。 - 使用
EurekaClient
bean 获取服务。
@Service
public class OrderService {
@Resource
private EurekaClient eurekaClient;
public void order(String goodCode) {
// 扣库存
InstanceInfo storeInstanceInfo = eurekaClient.getNextServerFromEureka("store", false);
String storeUrl = storeInstanceInfo.getHomePageUrl();
// dosth....
}
}
Eureka Server
如何引入 ?
- 使用
org.springframework.cloud:spring-cloud-starter-netflix-eureka-server
引入 Eureka Server。 - 在
application.properties
中配置 Eureka Server。
server.port=8110
# 是否注册到Eureka
eureka.client.register-with-eureka=false
# 是否从Eureka获取注册信息
eureka.client.fetch-registry=false
# Eureka服务地址
eureka.client.service-url.defaultZone=http://localhost:8110/eureka/
- 启动类使用
@EnableEurekaServer
配置启用 Eureka Server。
集群
application.propeties
配置eureka.client.service-url.defaultZone
为${peer1Url},${peer2Url},${peer3Url}
,例如http://peer1:8111/eureka/,http://peer2:8112/eureka/,http://peer3:8113/eureka/
。
注意:
peer1
、peer2
、peer3
配置在了hosts
文件中,指向127.0.0.1
。
eureka.instance.hostname
配置主机名,指定集群中peer的名称。eureka.client.register-with-eureka
配置为true
可显示哪个peer可用。