SpringCloud集成Eureka
下面就開始簡單的寫一個demo,先把組件慢慢都集成進來,先集成Eureka。
創建父模塊
父模塊需要創建maven項目,這裏沒有找到基礎的方法,就是不使用任何IDE去生成項目,所以最後無奈只能使用IDEA來生成這些項目。
首先選擇maven,再輸入自己項目的信息。
輸入完成後,刪除src目錄,只保留一個pom文件,加入SpringBoot依賴即可。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
創建Eureka服務註冊中心
新建一個模塊,根據spring的配置添加相應的依賴即可。這裏需要注意一下。
我的IDE不知道抽什麼風,一直連接不上springio,IDEA的代理配置能測試成功,但是到創建模塊時死活不行,修改代理、用VPN、改地址爲http,網上能找到的方法都試了,還是不行。最後放棄了,用的阿里雲的spring鏡像服務器。如下:
中間有些步驟我給省略了,沒有什麼可講的地方,下面就是選擇依賴。
後面就創建成功了,修改Eureka的配置即可。修改如下。
pom文件
pom文件需要修改父類依賴指向,指向剛纔創建的父模塊。EurekaServer依賴剛纔創建模塊的時候就已經導入了,不需要了。另外,看自己的需求導入健康檢查依賴,這裏我沒有使用,就沒有導入。pom文件全部代碼如下:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.psq</groupId>
<artifactId>ssodemo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.psq</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka</name>
<description>this is Eureka Server</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR4</spring-cloud.version>
</properties>
<dependencies>
<!-- eureka依賴 -->
<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-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</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.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.yml文件
application.yml文件需要對項目做一個基礎的配置,這裏按照自己的需求配置就可以了。因爲只是引入了Eureka,所以配置文件很少。另外,剛創建項目的時候是application.properties,命名爲application.yml文件即可,要注意這兩個文件雖然Spring都支持,但是這倆種文件的書寫格式不一樣。配置文件代碼如下:
#################################### common config : ####################################
spring:
application:
name: eureka
server:
port: 8080
##eureka服務段配置
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://127.0.0.1:8080/eureka
server:
renewal-percent-threshold: 0.49
啓動類添加Eureka註解
啓動類添加註解即可,添加一個@EnableEurekaServer
註解,然後啓動服務就可以了。
啓動結果及其驗證方法
啓動單個模塊,然後在瀏覽器輸入http://127.0.0.1:8080,出現下面的頁面就代表成功了。
創建Eureka客戶端
創建模塊的步驟和上面一致,不過依賴和相應的配置需要修改一下。
pom文件
沒有什麼可以講的地方。
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.psq</groupId>
<artifactId>ssodemo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.psq</groupId>
<artifactId>eureka-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-client</name>
<description>this is Eireka Client</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR4</spring-cloud.version>
</properties>
<dependencies>
<!--web依賴-->
<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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</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.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.yml配置文件
唯一需要注意的地方就是端口號和註冊中心的地址。
#################################### common config : ####################################
spring:
application:
name: eureka-client
server:
port: 8081
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8080/eureka
instance:
prefer-ip-address: true
啓動類註解
和註冊中心的註解也不一樣,需要修改一下。使用@EnableDiscoveryClient
這個註解。
啓動監測
需要注意的是,如果依賴中沒有添加web依賴,項目就會啓動一會就停掉了。因爲沒有添加web依賴的SpringBoot項目相當於一個java的demo,代碼執行完畢就結束了。執行項目後,註冊中心回出現已經註冊的實例。如下圖:
這樣就整合了一個Eureka,一個簡單的demo,中間省略了很多的東西。只是簡單的驗證一下。就這樣吧,結束。