---------后来,我们什么都有了,却没了我们--------

一.一个model工程作为服务注册中心,即Eureka Server,另一个作为Eureka Client。

例如Eureka Server 和 Eureka Client

创建server为例子

pom.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.forezp</groupId>

    <artifactId>eureka-server</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>

    <name>eureka-server</name>

    <description>Demo project for Spring Boot</description>

    <parent>

        <groupId>com.forezp</groupId>

        <artifactId>sc-f-chapter1</artifactId>

        <version>0.0.1-SNAPSHOT</version>

    </parent>

    <dependencies>

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

        </dependency>

    </dependencies>

</project>

继承了父pom.xml

二:启动一个服务注册中心

在启动上面加@EnableEurekaServer

如下:

@SpringBootApplication

@EnableEurekaServer

public class EurekaServerApplication {

    public static void main(String[] args) {

        SpringApplication.run( EurekaServerApplication.class, args );

    }

}

三:配置文件appication.yml

server:

  port: 8761

eureka:

  instance:

    hostname: localhost

  client:

    registerWithEureka: false

    fetchRegistry: false

    serviceUrl:

      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

spring:

  application:

    name: eurka-server

四:eureka server 是有界面的,启动工程,打开浏览器访问:

​http://localhost:8761​

可以看到访问成功

---五:--

创建一个服务提供者

Eureka server从每个client 实例接收心跳消息,如果心跳超时,将该实例从注册server中删除

和server类似,创建完pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.forezp</groupId>

    <artifactId>service-hi</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>jar</packaging>

    <name>service-hi</name>

    <description>Demo project for Spring Boot</description>

    <parent>

        <groupId>com.forezp</groupId>

        <artifactId>sc-f-chapter1</artifactId>

        <version>0.0.1-SNAPSHOT</version>

    </parent>

    <dependencies>

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

            </plugin>

        </plugins>

    </build>

</project>

六:通过注解@EnableEurekaClient 表面自己是一个enableEurekaClient

如下:

@SpringBootApplication

@EnableEurekaClient

@RestController

public class ServiceHiApplication {

    public static void main(String[] args) {

        SpringApplication.run( ServiceHiApplication.class, args );

    }

    @Value("${server.port}")

    String port;

    @RequestMapping("/hi")

    public String home(@RequestParam(value = "name", defaultValue = "forezp") String name) {

        return "hi " + name + " ,i am from port:" + port;

    }

}

七:咱们来看看下面配置EnableEurekaClient的配置文件application.yml

server:

  port: 8762

spring:

  application:

    name: service-hi

eureka:

  client:

    serviceUrl:

      defaultZone: http://localhost:8761/eureka/

需要指明spring.application.name,这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name 。

启动工程,打开http://localhost:8761 ,即eureka server 的网址:

看看是否启动成功

你会发现一个服务已经注册在服务中了,服务名为SERVICE-HI ,端口为7862