SpringCloud微服務全家桶-第6篇,Eureka服務註冊與發現

SpringCloud微服務全家桶-第6篇,Eureka服務註冊與發現

dubbo的註冊中心是zookeeper,那麼springcloud的註冊中心是Eureka.

Eureka這個詞是為了紀念阿基米德而來的,寓意大概就是發現的意思。

Eureka是什麼

官網的解釋:

Eureka是Netflix的一個子模塊,也是核心模塊之一。Eureka是一個基於REST的服務,用於定

位服務,以實現雲端中間層服務發現和故障轉移。服務註冊與發現對於微服務架構來說是非常

重要的,有了服務發現與註冊,只需要使用服務的標識符,就可以訪問到服務,而不需要修改

服務調用的配置文件了。功能類似於dubbo的註冊中心,比如Zookeeper。

說白了就是一張表,別人可以來這裡登記,然後要用他的人就先來找找。

Eureka包含兩個組件:Eureka Server和Eureka Client

Eureka Server提供服務註冊服務

各個節點啟動後,會在EurekaServer中進行註冊,這樣EurekaServer中的服務註冊表中將會存儲所有可用服務節點的信息,服務節點的信息可以在界面中直觀的看到

EurekaClient是一個Java客戶端

用於簡化Eureka Server的交互,客戶端同時也具備一個內置的、使用輪詢(round-robin)負載算法的負載均衡器。在應用啟動後,將會向Eureka Server發送心跳(默認週期為30秒)。如果Eureka Server在多個心跳週期內沒有接收到某個節點的心跳,EurekaServer將會從服務註冊表中把這個服務節點移除(默認90秒)

Spring Cloud 封裝了 Netflix 公司開發的 Eureka 模塊來實現服務註冊和發現(請對比Zookeeper)。

Eureka 採用了 C-S 的設計架構。Eureka Server 作為服務註冊功能的服務器,它是服務註冊中心。

SpringCloud微服務全家桶-第6篇,Eureka服務註冊與發現

官網就是這張圖

Eureka的三大角色

Eureka Server 提供服務註冊和發現

Service Provider服務提供方將自身服務註冊到Eureka,從而使服務消費方能夠找到

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

結合我們現在已有的工程模塊看看:

總父工程 microservicecloud

通用模塊api microservicecloud-api

服務提供者Provider microservicecloud-provider-dept-8001

服務消費者Consumer microservicecloud-consumer-dept-80

2.搭建服務註冊中心

新建項目microservicecloud-eureka-7001 eureka服務註冊中心Module

pom文件如下:

<project>

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelversion>4.0.0/<modelversion>

<parent>

<groupid>com.spring.springcloud/<groupid>

<artifactid>microservicecloud/<artifactid>

<version>1.0-SNAPSHOT/<version>

<artifactid>microservicecloud-eureka-7001/<artifactid>

<dependencies>

<dependency>

<groupid>org.springframework.cloud/<groupid>

<artifactid>spring-cloud-starter-eureka-server/<artifactid>

<dependency>

<groupid>org.springframework/<groupid>

<artifactid>springloaded/<artifactid>

<dependency>

<groupid>org.springframework.boot/<groupid>

<artifactid>spring-boot-devtools/<artifactid>

/<project>

SpringCloud微服務全家桶-第6篇,Eureka服務註冊與發現

搭建完後回到父工程pom文件看看:

SpringCloud微服務全家桶-第6篇,Eureka服務註冊與發現

3.新建application文件

server:
port: 7001
eureka:
instance:
hostname: localhost #eureka服務端的實例名稱,就是給他起了個名字

client:
register-with-eureka: false #false表示不向註冊中心註冊自己。

fetch-registry: false #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務

service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

#給他一個url,設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址。

配置完後在主目錄下新建啟動類:

SpringCloud微服務全家桶-第6篇,Eureka服務註冊與發現

package com.spring.springcloud;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication

@EnableEurekaServer

//代表eureka的服務端,接收其他服務註冊進來

public class EurekaServer7001_App {

public static void main(String[] args) {

SpringApplication.run(EurekaServer7001_App.class,args);

}

}

單獨啟動項目:訪問localhost:7001/

SpringCloud微服務全家桶-第6篇,Eureka服務註冊與發現

可以看到現在還沒有服務註冊進來。


分享到:


相關文章: