使用idea工具建立spring cloud 的Eureka-server和Eureka-client
- 第一步,打開idea先建立一個maven主工程項目
-
- 1.選擇maven,可勾選Create from archetype 這樣maven中的依賴jar包就加載到項目中了。也可不勾選,這裡不勾選,直接建立。
- 2分組,項目名寫一下,點選下一步。
- 3 然後Finish建立完成,建立完成後,項目大緻就是這樣的。
- 5 選擇自動導包
- 6 在父工程maven中的pom.xml中添加相應的元件依賴,子工程可以依賴父工程的pom.xml檔案,也可以不用添加,這裡不添加,若要添加,添加後需要右擊pom.xml選擇maven→Reimport重新整理pom檔案。
- 第二步,建立Eureka-server服務
-
- 1.選中項目,右鍵New →Module
-
- 1.2選中spring initlalizr 可以選擇Custom填寫網站,一般預設Default,為start.spring.io , 然後Next
- 1.3選擇Eureka Server 然後Next
- 1.4.Finish完成
- 1.5項目建立完成,目錄大緻是這樣的
- 1.6 pom.xml 檔案中的内容是這樣的,子工程依賴外部的父工程的pom.xml檔案,在此基礎上,也可以有自己的元件
- 2.啟動類中添加注解 @EnableEurekaServer
- 3.修改application.properties檔案為application.yml,并添加内容
- 4.建立完成運作啟動類,若發現出現這樣的錯誤,就去檢查application.yml,若沒有錯誤,就去把裡面的注釋删掉,是因為idea和項目的編碼格式不同,出現中文會報錯。
- 5.打開浏覽器,通路http://localhost:8082 頁面如下,其中 No application available 沒有服務被發現 ,因為沒有注冊服務是以沒有服務被發現
- 第三步、建立一個服務提供者 (eureka client)
-
- 1.選中maven項目,右鍵,New → Module
-
- 1.2 建立過程和建立eureka-server過程類似,差別在于添加項目依賴時選擇Web下的Spring Web Starter 和Spring Cloud Discovery 下的 Eureka Discovery Client
- 建立完成後,項目清單如下
- pom.xml檔案内容
- 2.啟動類添加注解@EnableEurekaClient
- 3.修改application.properties配置檔案為application.yml并注明自己的服務注冊中心的位址,需要指明spring.application.name,這個很重要,這在以後的服務與服務之間互相調用一般都是根據這個name 。
- 4.運作啟動類,再次通路浏覽器 http://localhost:8082/ 會發現一個服務已經注冊在服務中了,服務名為eureka-client ,端口為8084
第一步,打開idea先建立一個maven主工程項目
1.選擇maven,可勾選Create from archetype 這樣maven中的依賴jar包就加載到項目中了。也可不勾選,這裡不勾選,直接建立。
2分組,項目名寫一下,點選下一步。
3 然後Finish建立完成,建立完成後,項目大緻就是這樣的。
5 選擇自動導包
6 在父工程maven中的pom.xml中添加相應的元件依賴,子工程可以依賴父工程的pom.xml檔案,也可以不用添加,這裡不添加,若要添加,添加後需要右擊pom.xml選擇maven→Reimport重新整理pom檔案。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
第二步,建立Eureka-server服務
1.選中項目,右鍵New →Module
1.2選中spring initlalizr 可以選擇Custom填寫網站,一般預設Default,為start.spring.io , 然後Next
1.3選擇Eureka Server 然後Next
1.4.Finish完成
1.5項目建立完成,目錄大緻是這樣的
1.6 pom.xml 檔案中的内容是這樣的,子工程依賴外部的父工程的pom.xml檔案,在此基礎上,也可以有自己的元件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.啟動類中添加注解 @EnableEurekaServer
3.修改application.properties檔案為application.yml,并添加内容
server:
port: 8082 #端口号
eureka:
instance:
hostname: localhost
client: #服務注冊中心亦可作為用戶端,設定不注冊
register-with-eureka: false #是否将目前的Eureka Server作為用戶端進行注冊
fetch-registry: false #是否擷取其他Eureka Server服務的資料
serviceUrl: #服務注冊位址
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #注冊中心的通路位址
spring:
application:
name: eureka-server
通過eureka.client.registerWithEureka:false和fetchRegistry:false來表明自己是一個eureka server.
# Eureka-server;server.port:8082 端口号
4.建立完成運作啟動類,若發現出現這樣的錯誤,就去檢查application.yml,若沒有錯誤,就去把裡面的注釋删掉,是因為idea和項目的編碼格式不同,出現中文會報錯。
修改完成後,重新啟動項目,啟動成功。
5.打開浏覽器,通路http://localhost:8082 頁面如下,其中 No application available 沒有服務被發現 ,因為沒有注冊服務是以沒有服務被發現
第三步、建立一個服務提供者 (eureka client)
1.選中maven項目,右鍵,New → Module
1.2 建立過程和建立eureka-server過程類似,差別在于添加項目依賴時選擇Web下的Spring Web Starter 和Spring Cloud Discovery 下的 Eureka Discovery Client
建立完成後,項目清單如下
pom.xml檔案内容
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com</groupId>
<artifactId>eureka-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-client</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.啟動類添加注解@EnableEurekaClient
3.修改application.properties配置檔案為application.yml并注明自己的服務注冊中心的位址,需要指明spring.application.name,這個很重要,這在以後的服務與服務之間互相調用一般都是根據這個name 。
server:
port: 8084 #端口号
spring:
application:
name: eureka-client #目前服務注冊在Eureka Server 上的名稱
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8082/eureka/ #注冊中心的通路位址
instance:
prefer-ip-address: true #是否将目前服務的ip注冊到Eureka-Server