SpringCloud学习--服务发现组件 Eureka

一. Eureka简介

Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netflix中,实现SpringCloud的服务发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。

  • Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  • Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就别一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。

二. 搭建 Eureka服务端

Eureka与其他rpc组件不同之处在于,需要我们自己搭建。

1. 创建一个 Eureka的module

2. 在相应的pom文件中导入坐标

<!--父工程 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
	
<!--子工程 -->	
<!--eureka -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

3. 在yml配置文件中添加Eureka的配置信息

#eureka服务的配置文件
server:
  port: 6868 #服务端口
eureka:
  client:
    registerWithEureka: false #是否将自己注册到Eureka服务中,本身就是所有无需注册
    fetchRegistry: false #是否从Eureka中获取注册信息
    serviceUrl: #Eureka客户端与Eureka服务端进行交互的地址
      defaultZone: http://127.0.0.1:${server.port}/eureka/

	  

4. 配置启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * Eureka服务端启动类
 */
@SpringBootApplication
@EnableEurekaServer//开启eureka服务端配置
public class EurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer.class, args);
    }
}

5. 启动启动类

6.打开http://localhost:6868/,如出现下图则配置成功

三. Eureka客户端配置(其他的服务注册到Eureka服务中)

1. 在其他的微服务的pom文件中添加Eurka客户端的依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

 2. 在该微服务的application.yml配置文件中加入Eureka客户端配置

#微服务注册到eureka配置
eureka:
  client:
    service-url:
      defaultZone: http://localhost:6868/eureka/

3. 在该为服务的启动类上配置注册到Eureka

import com.ihrm.common.utils.IdWorker;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter;

//1. springBoot的包扫描
@SpringBootApplication(scanBasePackages = "com.ihrm")
//2. Jpa的包扫描
@EntityScan(value = "com.ihrm.domain.company")
//3. 注册到Eureka
@EnableEurekaClient
public class CompanyApplication {
    //springBoot的启动类
    public static void main(String[] args) {
        SpringApplication.run(CompanyApplication.class, args);
    }

}

4. 进入http://localhost:6868/, 如下注册成功

猜你喜欢

转载自blog.csdn.net/qq_36662478/article/details/88094692
今日推荐