前言
成都創(chuàng)新互聯(lián)公司是專業(yè)的中江網(wǎng)站建設(shè)公司,中江接單;提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行中江網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
Eureka是一種基于REST(具像狀態(tài)傳輸)的服務(wù),主要用于AWS云中定位服務(wù),以實(shí)現(xiàn)中間層服務(wù)器的負(fù)載平衡和故障轉(zhuǎn)移。本文記錄一個簡單的服務(wù)注冊與發(fā)現(xiàn)實(shí)例。
GitHub地址:https://github.com/Netflix/eureka
官網(wǎng)文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.1.0.RC2/single/spring-cloud-netflix.html
Eureka-Server
服務(wù)注冊中心
新建一個Maven項(xiàng)目,并刪除src文件夾,保留pom.xml,作為parent,當(dāng)然也可以不用
在parent里面新建一個springboot項(xiàng)目的Module,Eureka Server
項(xiàng)目結(jié)構(gòu)
maven引入jar
parent的 pom.xml
是為了統(tǒng)一版本
<?xml version="1.0" encoding="UTF-8"?>4.0.0 cn.huanzi.qch parent 1.0.0 pom org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE UTF-8 1.8 UTF-8 UTF-8 UTF-8 5.1.34 5.22 1.4.7.RELEASE 3.4.3.1 3.1.12 2.0.3 2.3.2 2.2.1 2.4 2.1.1 2.3.2 Greenwich.RC1 org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import spring-milestones Spring Milestones https://repo.spring.io/milestone
eureka-server的 pom.xml
繼承parent
<?xml version="1.0" encoding="UTF-8"?>4.0.0 cn.huanzi.qch.eureka eureka-server 0.0.1-SNAPSHOT eureka-server eureka 注冊中心 cn.huanzi.qch parent 1.0.0 org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin
配置文件
server.port=1111 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
啟動類
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
啟動應(yīng)用,訪問 http://localhost:1111/,注冊中心啟動成功,此時有0個服務(wù)
Eureka-Client
服務(wù)發(fā)現(xiàn),可以新建一個springboot項(xiàng)目,我們直接使用之前寫的一個myspringboot項(xiàng)目
maven中引入相關(guān)jar
org.springframework.cloud spring-cloud-starter-netflix-eureka-client
如果沒有repositories還需要加入
org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import spring-milestones Spring Milestones https://repo.spring.io/milestone
配置文件加入注冊中心的地址,也就是Eureka-Server的配置文件里面eureka.client.serviceUrl.defaultZone
#eureka eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
啟動類添加注解
@EnableEurekaClient @SpringBootApplication @RestController public class MyspringbootApplication{ public static void main(String[] args) { SpringApplication.run(MyspringbootApplication.class, args); } /** * 訪問首頁 */ @GetMapping("/index") public String index(){ return "hello springboot!"; } }
啟動客戶端服務(wù)
成功在注冊中心注冊成功,可以對外提供服務(wù)
健康檢查
默認(rèn)情況下,Eureka使用客戶端心跳來確定客戶端是否啟動。除非另有說明,否則發(fā)現(xiàn)客戶機(jī)不會根據(jù)Spring引導(dǎo)執(zhí)行器傳播應(yīng)用程序的當(dāng)前健康檢查狀態(tài)。因此,在成功注冊后,Eureka總是宣布應(yīng)用程序處于“UP”狀態(tài)??梢酝ㄟ^啟用Eureka健康檢查來更改此行為,比如我現(xiàn)在將myspringboot服務(wù)停掉,但注冊中心依舊顯示為UP,這樣就會造成我服務(wù)已經(jīng)掛掉了,但注冊中心依然會認(rèn)為這個實(shí)例還活著。
Eureka-Client
#健康檢查(需要spring-boot-starter-actuator依賴) eureka.client.healthcheck.enabled=true # 續(xù)約更新時間間隔(單位秒,默認(rèn)30秒) eureka.instance.lease-renewal-interval-in-seconds=10 # 續(xù)約到期時間(單位秒,默認(rèn)90秒) eureka.instance.lease-expiration-duration-in-seconds=10
org.springframework.boot spring-boot-starter-actuator
Eureka-Server
#設(shè)為false,關(guān)閉自我保護(hù) eureka.server.enable-self-preservation=false #清理間隔(單位毫秒,默認(rèn)是60*1000) eureka.server.eviction-interval-timer-in-ms=10000
健康檢查,注冊中心將死去的服務(wù)剔除
總結(jié)
Eureka-Server
1、引入的是spring-cloud-starter-netflix-eureka-server,使用的是@EnableEurekaServer
Eureka-Client
1、引入的是spring-cloud-starter-netflix-eureka-client,使用的是@EnableEurekaClient
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。