Spring Cloud Eureka:服务注册与发现
Spring Cloud Eureka 是 Spring Cloud 的一部分,它提供了用于服务注册与发现的工具。以下是一个使用 Spring Cloud Eureka 的简单示例。
- 首先,创建一个 Eureka 服务器。
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
在 application.properties
或 application.yml
配置文件中,设置 Eureka 服务器的基本信息:
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
- 创建一个 Eureka 客户端服务。
@SpringBootApplication
@EnableEurekaClient
@RestController
public class ServiceApplication {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceApplication.class);
@Value("${spring.application.name}")
private String serviceName;
@GetMapping("/hello")
public String hello() {
return "Hello from " + serviceName;
}
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class, args);
}
@EventListener
public void onApplicationEvent(EurekaRegistrationEvent event) {
LOGGER.info("Registered service: {} with Eureka with status: {}",
serviceName, event.getApp().getStatusInfo());
}
}
在 application.properties
或 application.yml
配置文件中,设置 Eureka 客户端的基本信息:
spring:
application:
name: service-hello
server:
port: 8080
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
以上代码展示了如何创建一个 Eureka 服务器和一个 Eureka 客户端。Eureka 服务器用于服务注册,Eureka 客户端将其注册到 Eureka 服务器并定期发送心跳来保持注册。这样,客户端服务就可以通过 Eureka 服务器查找和调用其他的服务。
评论已关闭