微服務(wù)系列文章導(dǎo)航
源碼地址
工程說明
- 服務(wù)中心的作用:服務(wù)注冊,服務(wù)發(fā)現(xiàn)
- 服務(wù)中心解決的問題:服務(wù)管理、服務(wù)的依賴關(guān)系
- 服務(wù)中心的角色
- Eureka Server
- 通過
Register、Get、Renew
等接口提供服務(wù)的注冊和發(fā)現(xiàn)。
- Application server(service provider)
- 服務(wù)提供方,把自身的服務(wù)實例注冊到
Eureka Server
中
- Application client(Service Consumer)
- 服務(wù)消費方,通過
Eureka Server
,拉取服務(wù)列表至本地,再調(diào)用服務(wù)
工程搭建
1、添加pom依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2、添加配置
- 本項目分了三環(huán)境,
dev
、prod
和test
,其中dev的配置為動態(tài)配置,可以根據(jù)啟動參數(shù),指定服務(wù)端口號PORT
、EUREKA_SERVER
、EUREKA_DOMAIN
。 - 其余兩個配置(
prod
,test
)組成一個集群,方便單服務(wù)器快速啟動 - 主配置文件
application.yml
里面指定了微服務(wù)名稱和使用哪個配置文件,以下是各個配置文件的配置
application.yml
配置
spring:
application:
name: manage-center #eureka 服務(wù)
profiles:
active: dev # 讀取哪個配置文件
application-dev.yml
配置
server:
port: ${PORT:50100} #服務(wù)端口
eureka:
client:
registerWithEureka: true #服務(wù)注冊,是否將自己注冊到Eureka服務(wù)中
fetchRegistry: true #服務(wù)發(fā)現(xiàn),是否從Eureka中獲取注冊信息
serviceUrl: #Eureka客戶端與Eureka服務(wù)端的交互地址,高可用狀態(tài)配置對方的地址,單機狀態(tài)配置自己(如果不配置則默認(rèn)本機8761端口)
defaultZone: ${EUREKA_SERVER:http://localhost:50100}
server:
enable-self-preservation: false #是否開啟自我保護(hù)模式
eviction-interval-timer-in-ms: 60000 #服務(wù)注冊表清理間隔(單位毫秒,默認(rèn)是60*1000)
instance:
hostname: ${EUREKA_DOMAIN:eureka}
application-prod.yml
配置
server:
port: 50101 #服務(wù)端口
eureka:
client:
registerWithEureka: true #服務(wù)注冊,是否將自己注冊到Eureka服務(wù)中
fetchRegistry: true #服務(wù)發(fā)現(xiàn),是否從Eureka中獲取注冊信息
serviceUrl: #Eureka客戶端與Eureka服務(wù)端的交互地址,高可用狀態(tài)配置對方的地址,單機狀態(tài)配置自己(如果不配置則默認(rèn)本機8761端口)
defaultZone: http://localhost:50102/eureka
server:
enable-self-preservation: false #是否開啟自我保護(hù)模式
eviction-interval-timer-in-ms: 60000 #服務(wù)注冊表清理間隔(單位毫秒,默認(rèn)是60*1000)
instance:
hostname: localhost
application-test.yml
配置
server:
port: 50102 #服務(wù)端口
eureka:
client:
registerWithEureka: true #服務(wù)注冊,是否將自己注冊到Eureka服務(wù)中
fetchRegistry: true #服務(wù)發(fā)現(xiàn),是否從Eureka中獲取注冊信息
serviceUrl: #Eureka客戶端與Eureka服務(wù)端的交互地址,高可用狀態(tài)配置對方的地址,單機狀態(tài)配置自己(如果不配置則默認(rèn)本機8761端口)
defaultZone: http://localhost:50101/eureka
server:
enable-self-preservation: false #是否開啟自我保護(hù)模式
eviction-interval-timer-in-ms: 60000 #服務(wù)注冊表清理間隔(單位毫秒,默認(rèn)是60*1000)
instance:
hostname: localhost
3、添加啟動注解類
- 注解類:
@EnableEurekaServer
- 以下為啟動類部分代碼:
/**
* @author : xingsongtan@qq.com
* @date : 20:19 2019/7/24
*/
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
四、測試啟動
啟動成功之后,訪問地址http://localhost:50100/
,出現(xiàn)以下畫面,則說明啟動成功
Eureka-index-page.png