spring cloud 2.x版本 Eureka Server服務註冊中心教程
本文采用Spring cloud本文為2.1.8RELEASE,version=Greenwich.SR3
1.建立服務註冊中心
1.1 新建Spring boot工程:eureka-server
1.2 pom.xml所需依賴jar包
<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-server</artifactId>
</dependency>
複製程式碼
1.3 EurekaServerApplication新增註解@EnableEurekaServer
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class,args);
}
}
複製程式碼
@EnableEurekaServer:啟用eureka server相關配置
1.4 新增配置檔案內容:application.yml
spring:
application:
name: eureka-server
server:
port: 8701
#無引數啟動
eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
register-with-eureka: false #預設為true,設定為false,僅作為服務中心,不作為服務客戶端
fetch-registry: false #預設為true,設定為false, 不從服務中心檢索註冊的服務
server:
eviction-interval-timer-in-ms: 5000 #清理間隔(單位毫秒, 預設是60*1000)
enable-self-preservation: true #預設為true,設定為false,關閉自我保護
#eureka server: 在執行期間會去統計心跳失敗比例在15分鐘之內是否低於85%
renewal-percent-threshold: 0.49 #預設0.85
複製程式碼
單機模式下: register-with-eureka和fetch-registry應為false,否則啟動會報錯:Cannot execute request on any known server。原因,在預設設定下,eureka服務註冊中心會將自己作為客戶端來嘗試註冊自己。
1.5 啟動服務
開啟瀏覽器輸入:http://localhost:8701,顯示如下:
紅框內容代表還沒有例項註冊
結語
至此,一個簡單的單機服務註冊中心就搭建完成了。
搭建服務註冊中心叢集
為了保證服務的高可用,我們需要把單機應用改成叢集應用,接下來,我們建立一個簡單的eureka server叢集.
1.1 修改本地host
- 127.0.0.1 eureka1.server.com
- 127.0.0.1 eureka2.server.com
- 127.0.0.1 eureka3.server.com
1.2 增加application.yml配置檔案
增加application-server1.yml和application-server2.yml檔案,同時修改原來的application.yml檔案,檔案內容如下:
- application.yml
spring:
application:
name: eureka-server
server:
port: 8701
#無引數啟動
eureka:
instance:
hostname: eureka1.server.com
prefer-ip-address: true
client:
service-url:
defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/
register-with-eureka: false
fetch-registry: true
server:
eviction-interval-timer-in-ms: 5000
enable-self-preservation: true
renewal-percent-threshold: 0.49
複製程式碼
- application-server1.yml
spring:
application:
name: eureka-server
server:
port: 8702
#無引數啟動
eureka:
instance:
hostname: eureka2.server.com
client:
service-url:
defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka3.server.com:8703/eureka/
register-with-eureka: false
fetch-registry: true
server:
eviction-interval-timer-in-ms: 5000
enable-self-preservation: true
renewal-percent-threshold: 0.49
複製程式碼
- application-server2.yml
spring:
application:
name: eureka-server
server:
port: 8703
#無引數啟動
eureka:
instance:
hostname: eureka3.server.com
client:
service-url:
defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka3.server.com:8703/eureka/
register-with-eureka: false
fetch-registry: true
server:
eviction-interval-timer-in-ms: 5000
enable-self-preservation: true
renewal-percent-threshold: 0.49 #預設0.85
複製程式碼
1.3 在idea中新增啟動服務
設定啟動服務,按照截圖中1234順序依次新增
分別建立eureka-server2和eureka-server3.(注:eureka-server1用原來的啟動就可以)1.4 按照順序分別啟動3個eureka server服務
啟動服務後分別訪問 eureka1.server.com:8701,eureka1.server.com:8702,eureka1.server.com:8703 如圖顯示:
三個頁面如上圖顯示就代表服務全部啟動成功。至此,一個簡單的服務中心叢集就搭建完成。
總結
可以將application-server1.yml和application-server2.yml的配置資訊都放到原application.yml配置中,通過‘---’ 三橫槓模加spring.profiles模式來啟動,同時增加啟動引數: --spring.profiles.active=config-server1。本文采用過個application.yml的方式,方便以後的維護。
本文只是簡單的搭建了服務註冊中心的單機和叢集應用,對eureka做為服務註冊中心有一個簡單對認識,後續會更新eureka的其他內容。
程式碼倉庫
- spring cloud 2.x版本 Eureka Server服務註冊中心教程
- spring cloud 2.x版本 Eureka Client服務提供者教程
- spring cloud 2.x版本 Ribbon服務發現教程(內含整合Hystrix熔斷機制)
- spring cloud 2.x版本 Feign服務發現教程(內含整合Hystrix熔斷機制)
- spring cloud 2.x版本 Zuul路由閘道器教程
- spring cloud 2.x版本 config分散式配置中心教程
- spring cloud 2.x版本 Hystrix Dashboard斷路器教程
轉載請註明出處,
- 聯絡方式:[email protected]