本文介紹如何在springcloud項目中進行eureka服務端配置、eureka用戶端配置、以及eureka的叢集配置。本例使用的springcloud版本為:2021.0.3,springboot版本為:2.6.8。
1、Eureka服務端配置
1.1 建立eureka服務端項目
打開idea建立項目,選擇maven,建立springboot項目eueka-server-7001。
1.2 pom配置
在項目pom中引入eureka的服務端依賴 spring-cloud-starter-netflix-eureka-server。
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.2.10.RELEASE</version>
</dependency>
</dependencies>
1.3 application.yml配置
在項目resources檔案夾下建立application.yml檔案,并按如下内容進行配置:
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
1.4 主應用類配置
在項目src/main/java下建立主應用類 EurekaServerApplication.java,添加eureka服務端注解@EnableEurekaServer和@SpringBootApplication。
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
1.5 測試驗證
運作項目eueka-server-7001,然後通過浏覽器通路http://localhost:7001/位址,如果出現以下頁面,則表示eureka注冊中心配置成功:
2、Eureka用戶端項目配置
2.1 建立eureka用戶端項目
打開idea建立項目,選擇maven,建立springboot項目payment-8001。
2.2 pom配置
在項目pom中引入eureka的用戶端依賴 spring-cloud-starter-netflix-eureka-server。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.10.RELEASE</version>
</dependency>
2.3 application.yml配置
在項目resources檔案夾下建立application.yml檔案,并按如下内容進行配置:
server:
port: 8001
eureka:
client:
service-url:
defaultZone: http://127.0.0.1.com:7001/eureka/
fetch-registry: true
instance:
instance-id: payment-${server.port}
prefer-ip-address: true
2.4 主應用類配置
在主應用類上添加eureka用戶端注解 @EnableEurekaClient:
@Configuration
@MapperScan("com.knight.payment.dao")
@EnableEurekaClient
@SpringBootApplication
public class PaymentApplication {
public static void main(String[] args) {
SpringApplication.run(PaymentApplication.class, args);
}
}
2.5 測試驗證
啟動并運作payment-8001項目,然後通過浏覽器通路http://localhost:7001/位址,如果出現以下頁面,則表示成功注冊到eureka注冊中心:
3、eureka叢集配置
3.1 eureka服務端配置
修改eureka服務端項目eueka-server-7001的application.yml檔案如下:
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服務端的執行個體名稱
client:
register-with-eureka: false #false表示不向注冊中心注冊自己
fetch-registry: false #false表示自己端就是注冊中心,我的職責就是維護服務執行個體,并不需要去檢索服務
service-url:
defaultZone: http://eureka7002.com:7002/eureka/
建立新的eureka服務端項目eueka-server-7002,并将application.yml檔案配置如下:
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com #eureka服務端的執行個體名稱
client:
register-with-eureka: false #false表示不向注冊中心注冊自己
fetch-registry: false #false表示自己端就是注冊中心,我的職責就是維護服務執行個體,并不需要去檢索服務
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
3.2 eureka用戶端項目配置
将項目payment-8001中的application.yml配置修改如下:
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
fetch-registry: true
instance:
instance-id: payment-${server.port}
prefer-ip-address: true
3.3 測試驗證
同時啟動并運作eueka-server-7001、eueka-server-7002、payment-8001三個項目,然後通過浏覽器通路http://eureka7001.com:7001/和http://eureka7002.com:7002位址,如果出現以下頁面則表示配置成功: