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
更多請(qǐng)關(guān)注公眾號(hào)程序員阿亮:

image