二、Springcloud注冊(cè)與發(fā)現(xiàn)之Eureka

fast-cloud-eureka

Eureka是Netflix開發(fā)的服務(wù)發(fā)現(xiàn)框架,本身是一個(gè)基于REST的服務(wù),Springcloud將其集成在子項(xiàng)目spring-cloud-netflix中,實(shí)現(xiàn)Springcloud的注冊(cè)發(fā)現(xiàn)功能。
包含兩個(gè)核心組件EurekaServer和EurekaClient

即提供一個(gè)Springboot的服務(wù)作為EurekaServer,即本服務(wù),其他的服務(wù)都作為EurekaClient注冊(cè)到EurekaServer上面。
Eureka需要至少3個(gè)參與者,如下圖:

image

如上圖分為三步

  • 1、EurekaServer作為注冊(cè)中心先啟動(dòng)之后,服務(wù)提供者注冊(cè)到配置中心
  • 2、服務(wù)消費(fèi)者注冊(cè)到配置中心
  • 3、服務(wù)消費(fèi)者調(diào)用服務(wù)提供者

一、EurekaServer配置

1、引入pom版本

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

2、注解

在入口類中添加@EnableEurekaServer注解

@Slf4j
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
        log.info(">>>>EurekaApplication started success ^-^ <<<<<");
    }
}

3、配置文件

添加如下配置

# 服務(wù)名
spring.application.name= eureka
#端口
server.port=7777
# 是否注冊(cè)到eureka(eureka本身是不需要再注冊(cè)到自己的)
eureka.client.register-with-eureka=false
# 是否從eureka獲取注冊(cè)信息
eureka.client.fetch-registry=false
# eureka服務(wù)器的地址(注意:地址最后面的 /eureka/ 這個(gè)是固定值)
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
#服務(wù)失效時(shí)間,Eureka多長(zhǎng)時(shí)間沒收到服務(wù)的renew操作,就剔除該服務(wù),默認(rèn)90秒
eureka.instance.leaseExpirationDurationInSeconds=15
#eureka server清理無效節(jié)點(diǎn)的時(shí)間間隔,默認(rèn)60000毫秒,即60秒
eureka.server.evictionIntervalTimerInMs=20000
# 自我保護(hù)模式(缺省為打開)
eureka.server.enable-self-preservation: true
# 續(xù)期時(shí)間,即掃描失效服務(wù)的間隔時(shí)間(缺省為60*1000ms)
eureka.server.eviction-interval-timer-in-ms: 5000 

4、訪問 localhost:7777

出現(xiàn)下圖說明EurekaServer啟動(dòng)成功


image

二、服務(wù)提供者配置

我們把fast-cloud-admin作為為服務(wù)提供者

引入pom


<!-- 引入客戶端 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--springboot2版本要求引入此包-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

入口類配置

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

}

三、服務(wù)消費(fèi)者配置

我們把fast-cloud-data作為為服務(wù)消費(fèi)者

配置

同Admin服務(wù)同樣

<!-- 引入客戶端 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--springboot2版本要求引入此包-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

入口類配置

也同二

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

}
加入配置文件

在properties中添加配置文件,同二

#================================eureka配置==============================
#注冊(cè)到eureka中心,獲取到配置服務(wù)
eureka.client.service-url.defaultZone=http://localhost:7777/eureka/
#設(shè)置實(shí)例的ID為ip:port
#eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
#================================續(xù)約配置============================
# 心跳時(shí)間,即服務(wù)續(xù)約間隔時(shí)間(缺省為30s)
eureka.instance.lease-renewal-interval-in-seconds=5
# 發(fā)呆時(shí)間,即服務(wù)續(xù)約到期時(shí)間(缺省為90s)
eureka.instance.lease-expiration-duration-in-seconds=10
# 開啟健康檢查(依賴spring-boot-starter-actuator)
eureka.client.healthcheck.enabled=true

四、訪問

訪問localhost:7777,看到下圖,說明成功


image

代碼地址

請(qǐng)選擇eureka分支,master分支為完整代碼
https://github.com/liangliang1259/fast-cloud-examples/tree/eureka

關(guān)于我

email : liangliang1259@163.com

Github

更多請(qǐng)關(guān)注公眾號(hào)程序員阿亮:

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容