天天看點

SpringCloud-Eureka【入門案例】

一、 什麼是服務注冊中心

  服務注冊中心是服務實作服務化管理的核心元件,類似于目錄服務的作用,主要用來存儲服務資訊,譬如提供者 url 串、路由資訊等。服務注冊中心是 SOA 架構中最基礎的設施之一。

1 服務注冊中心的作用

  1. 服務的注冊
  2. 服務的發現

2 常見的注冊中心有哪些

  1. Dubbo 的注冊中心 Zookeeper
  2. Springcloud 的注冊中心 Eureka

3 服務注冊中心解決了什麼問題

  1. 服務管理
  2. 服務的依賴關系管理

4 什麼是 Eureka 注冊中心

  Eureka 是 Netflix 開發的服務發現元件,本身是一個基于 REST 的服務。Spring Cloud将它內建在其子項目 spring-cloud-netflix 中,以實作 Spring Cloud 的服務注冊于發現,同時還提供了負載均衡、故障轉移等能力。

5 Eureka 注冊中心三種角色

5.1Eureka Server

  通過 Register、Get、Renew 等接口提供服務的注冊和發現。

5.2Application Service (Service Provider)

  服務提供方把自身的服務執行個體注冊到 Eureka Server 中

5.3Application Client (Service Consumer)

  服務調用方通過 Eureka Server 擷取服務清單,消費服務

二、 Eureka入門案例

1.建立SpringBoot項目

  建立一個SpringBoot項目

2.引入相關的依賴

  添加如下的相關依賴

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

    <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-config</artifactId>
        <version>1.4.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
        <version>1.3.2.RELEASE</version>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.SR5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>複制代碼      

建立啟動器

  在啟動類中我們需要放開@EnableEurekaServer,表明這是個Eureka的服務端

@EnableEurekaServer
@SpringBootApplication
public class SpringcloudEurekaDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudEurekaDemoApplication.class, args);
    }
}複制代碼      

修改application.properties檔案

spring.application.name=eureka-server
server.port=8761

# 是否将自己注冊到Eureka中,預設true
eureka.client.register-with-eureka=false
# 是否從Eureka服務中擷取注冊資訊預設是true
eureka.client.fetch-registry=false複制代碼      

啟動服務通路web頁面

繼續閱讀