在 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/
启动客户端后, 刷新服务端页面, 可以看到该客户端服务已被服务端发现并注册.
来源: https://www.cnblogs.com/kenwoo/p/9689019.html