1.創建父工程SpringCloudTest
SpringCloudTest為父工程,用于引入通用依賴,如spring-boot-starter-web、lombok,這樣子工程就可以直接繼承,無需重復引入。在dependencyManagement標簽中引入和springboot版本對應的springcloud(訪問官網查詢),本文用的springboot3.5.3,對應springcloud2025.0.0。
SpringCloudTest的pom.xml文件的關鍵內容如下:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.3</version><relativePath/> <!-- lookup parent from repository --></parent> <modules><module>spring-cloud-eureka-server</module><module>spring-cloud-eureka-client</module></modules><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><dependencyManagement><dependencies><!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2025.0.0</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
2.創建子工程spring-cloud-eureka-server
主要分四步:在parent標簽中引入父工程的依賴;引入spring-cloud-starter-netflix-eureka-server依賴;啟動類上添加@EnableEurekaServer自動化配置注解;在application.yaml文件中配置eureka注冊中心的信息。
application.yaml文件內容:
eureka:instance:instance-id: ${spring.application.name}:${server.port}prefer-ip-address: trueclient:# 注冊中心自己不用注冊register-with-eureka: falsefetch-registry: false# 注冊中心地址,必須以eureka為后綴,否則服務注冊不上service-url:defaultZone: http://127.0.0.1:8080/eureka/
spring:application:name: eureka_server
server:port: 8080
3.創建子工程spring-cloud-eureka-cilent
主要分三步:在parent標簽中引入父工程的依賴;引入spring-cloud-starter-netflix-eureka-client依賴;在application.yaml中配置服務注冊地址。
application.yaml文件內容如下:
server:port: 9000
spring:application:name: spring-cloud-eureka-client
eureka:instance:instance-id: ${spring.application.name}:${server.port}client:service-url:defaultZone: http://127.0.0.1:8080/eureka
4.分別啟動spring-cloud-eureka-server和spring-cloud-eureka-cilent
5.訪問localhost:8080,結果如下圖所示。
6.踩的坑:
1)defaultZone的后綴不是eureka,導致服務找不到注冊中心,注冊失敗。
VICTORY!!!
?