1. 程式人生 > 其它 >Springboot-微服務-微服務元件之服務管理-eureka

Springboot-微服務-微服務元件之服務管理-eureka

Springboot-微服務-微服務元件之服務管理-eureka

Eureka註冊中心

Eureka做什麼?

Eureka就好比是滴滴,負責管理、記錄服務提供者的資訊。服務呼叫者無需自己尋找服務,而是把自己的需求告訴Eureka,然後Eureka會把符合你需求的服務告訴你。

同時,服務提供方與Eureka之間通過“心跳”機制進行監控,當某個服務提供方出現問題,Eureka自然會把它從服務列表中剔除。

這就實現了服務的自動註冊、發現、狀態監控。

原理

基本架構

  • Eureka:就是服務註冊中心(可以是一個叢集),對外暴露自己的地址
  • 提供者:啟動後向Eureka註冊自己資訊(地址,提供什麼服務)
  • 消費者:向Eureka訂閱服務,Eureka會將對應服務的所有提供者地址列表傳送給消費者,並且定期更新
  • 心跳(續約):提供者定期通過http方式向Eureka重新整理自己的狀態

入門

啟動一個Eureka並編寫相關注入配置

pom檔案

引入兩個依賴

  • springboot-web
  • eureka-server依賴
<?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">
    <parent>
        <artifactId>spring-could-demo</artifactId>
        <groupId>com.caicai.springcould.demo</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-service</artifactId>
    <!--引入eureka 服務端 依賴-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <version>2.0.1.RELEASE</version>
        </dependency>
    </dependencies>

</project>

編寫Springboot啟動類

  • 開啟eureka註解
  • 開啟springboot 註解
package com.caicai;

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


@EnableEurekaServer//標記該應用為eureka應用,新增該註解
@SpringBootApplication
public class EurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer.class);
    }
}

編寫一個application.yml配置檔案

  • 配置啟動埠
  • 配置應用名稱
  • 註冊測試
server:
  port: 8082 #配置埠
eureka:#配置註冊
  client:
    service-url:
      defaultZone: http://localhost:8082/eureka
  instance:
    prefer-ip-address: true #使用本地地址
    ip-address: 127.0.0.1
#配置應用名稱
spring:
  application:
    name: eureka-server1

服務的註冊

  • 引入eureka客戶端依賴
  • springboot 啟動類接入開啟eurekaclient 註解
  • 在application.yml 種配置註冊入服務端

引入eureka客戶端依賴

POM檔案

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

springboot 啟動類接入開啟eurekaclient 註解


package com.caicai;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import tk.mybatis.spring.annotation.MapperScan;
@EnableDiscoveryClient
//配置允許開啟客戶端。這裡沒有配置eurekaclient是因為如配置了,就只能使用這一種,使用discover 它支援,eureka、zookeeper
@SpringBootApplication
@MapperScan("com.caicai.User.mapper")
public class UserApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class);
    }
}


在application.yml 種配置註冊入服務端


eureka:
  client:
    service-url:
      defaultZone: http://localhost:8082/eureka

開開心心,上班! 快快樂樂,遊玩! 及時行樂!