Aeizzz / aeizzz

0 stars 2 forks source link

Spring Cloud 之 eureka #2

Open Aeizzz opened 6 years ago

Aeizzz commented 6 years ago

Eureka 分为服务端和客户端

服务发现:Eureka服务器

如何包含Eureka服务器

要在项目中包含Eureka服务器,请使用组org.springframework.cloud 和工件id spring-cloud-starter-eureka-server的启动器。

创建“服务注册中心”

创建一个基础的spring boot项目,修改pom.xml中引入需要的依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.5.RELEASE</version>
    <relativePath/>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Dalston.SR4</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    </dependencies>
</dependencyManagement>

通过@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话。这一步非常的简单,只需要在一个普通的Spring Boot应用中添加这个注解就能开启此功能,比如下面的例子:

@EnableEurekaServer
@SpringBootApplication
public class ItEurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(ItEurekaApplication.class, args);
    }

}

配置yml文件

server:
  port: 9000   #服务端口
eureka:
  instance:
    hostname: localhost   #服务主机名
  client:
    registerWithEureka: false   
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  #注册中心地址
spring:
  application:
    name: it-eureka   #应用名称

因为自己是服务注册中心,因此需要禁用它的客户端注册行为即在配置文件中加入

eureka:
  client:
    registerWithEureka: false   
    fetchRegistry: false

服务发现:Eureka客户端

在需要注册到Eureka的应用中增加依赖

<!--注册中心-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

修改yaml配置文件

eureka:
  instance:
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5
    lease-expiration-duration-in-seconds: 20
  client:
    serviceUrl:
      defaultZone: http://localhost:9000/eureka/

那个地址指向的是Eureka 服务端地址
修改启动类增加注解@EnableEurekaClient即可


更多的用法看文档 Spring Cloud Netflix