在Spring Cloud中Eureka负责服务发现功能。服务发现需要解决如何找到服务提供者在网络中位置的问题。
服务端
在Spring Tool Suite的文件菜单中,点击新建Spring Starter Project。
然后在入口方法加上@EnableEurekaServer标记。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer @SpringBootApplication public class SpringcloudEurekaServerApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudEurekaServerApplication.class, args); } }接着,在application.properties文件中增加如下配置:
server.port=8765 eureka.instance.hostname: localhost eureka.client.registerWithEureka: false eureka.client.fetchRegistry: false eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/如果能够顺利启动此程序的话,可以在http://localhost:8765地址中看到下列页面:
客户端
新建另一个Spring Starter Project。
在入口方法加上@EnableDiscoveryClient标记。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @EnableDiscoveryClient @RestController @SpringBootApplication public class SpringcloudEurekaClientApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudEurekaClientApplication.class, args); } @RequestMapping("/hello") public String home() { return "Hello world"; } }配置文件里添加服务端的地址
server.port=8760 spring.application.name: springcloud-eureka-client eureka.client.serviceUrl.defaultZone: http://localhost:8765/eureka/启动客户端后,刷新服务端页面,可以看到该客户端服务已被服务端发现并注册。
