SpringCloud學習之整合eureka


一:eureka簡介 

  1.eureka遵守cap原則里的AP原則,即高可用和分區容錯性

    CAP原則又稱CAP定理,指的是在一個分布式系統中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可兼得

  2.eureka的地位

    Eureka 模塊來實現服務注冊和發現,Eureka Server作為服務的注冊中心,其他微服務通過Eureka client 連接到 Eureka Server並維持心跳連接

 

  3. eureka的角色

    3.1 eureka server提供服務注冊和發現

    3.2 Service Provider 服務提供方將自身服務注冊進入eureka,從而使consumer能夠通過eureka找到

    3.3 Service Consumer服務消費方從Eureka獲取注冊服務列表,從而能夠消費服務

二: 整合eureka

  前提: 基於 https://www.cnblogs.com/zhanyifan/p/10693869.html 的基礎環境進行整合eureka

  1. 創建maven module ---- microservicecloud-eureka-7001

    1.1 修改pom

      注意: 這里的eureka server端采用 spring-cloud-starter-eureka-server 而非 spring-cloud-starter-netflix-eureka-server,本人采用spring-cloud-starter-netflix-eureka-server 進行eureka server進行注冊時候,client 端無法注冊進eureka

<?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>microservicecloud</artifactId>
        <groupId>com.ligong.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>microservicecloud-eureka</artifactId>
    <dependencies>
        <!--eureka-server服務端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.cloud</groupId>-->
            <!--<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>-->
        <!--</dependency>-->
        <!--熱部署-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>
    </dependencies>
</project>

    1.2 修改application.yml

 

server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #eureka 服務端的實例名稱 這里進行了主機映射,為了是方便后面的eureka集群配置
  client:
    register-with-eureka: false # false表示不向注冊中心注冊自己
    fetch-registry: false #false 表示自己端就是注冊中心,我的職責是維護服務實例,並不需要去檢索服務
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #設置與Eureka Server交互的地址查詢服務和注冊服務都需要依賴這個地址

    1.3 添加SpringBoot 主啟動類  

@SpringBootApplication
@EnableEurekaServer
public class EurekaService7001App {
    public static void main(String[] args) {
        SpringApplication.run(EurekaService7001App.class,args);
    }
}

    1.4 啟動EurekaService7001App, 並訪問eureka7001.com:7001

    

    如果能看到此頁面,說明eureka搭建成功,這里我已經搭建完畢了eureka集群,已經微服務的注冊,所以能看到的信息會多些,剛做到這步的時候 installces currently registered with eureka下應該為No application available

  2.修改provider module

    2.1 修改pom

      新增以下依賴,注意不是spring-cloud-starter-eureka-server 是 spring-cloud-starter-eureka 沒有-server

 <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.6.RELEASE</version>
 </dependency>
 <dependency>
   <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
 </dependency>

    2.2 修改application.yml

 

    新增以下內容

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/

    2.3 在主啟動類上添加@EnableEurekaClient 注解

 

@SpringBootApplication
@EnableEurekaClient
public class DeptProvider8080App {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider8080App.class,args);
    }
}

    2.4 測試

      2.4.1 先啟動eureka,

      2.4.2 再啟動provider微服務

      

      如果在eureka的進程中出現這句話,說明服務注冊成功。

      你也可以到eureka7001.com:7001上查看,會出現

      

 

       說明服務注冊成功,至此,eureka的整合基本完成

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM