序
上次說到我已經新建了maven的父工程,加上了Eureka Server,今天我來建立一個Eureka Client的模板實例,在以後的項目中,其實每個服務都是一個Eureka Client,比如網關、用戶服務、或者註冊中心等等,所以今天這個章節是以後各個組件的基礎。
![springcloud基於springboot2.X項目構建-02](http://p2.ttnews.xyz/loading.gif)
建立maven項目
我們在父級項目的下面新建一個Module,然後選擇maven,輸入名稱,新建maven項目
idea生成文件後,我們來修改下pom程序
![springcloud基於springboot2.X項目構建-02](http://p2.ttnews.xyz/loading.gif)
maven內容-01
maven內容-02
maven內容-03
下面我來解釋下引用這幾個文件的意義
spring-cloud-starter-netflix-eureka-client:這是EurekaClient的基礎包,是必須的,這樣本實例才能把心跳數據發送到EurekaServer中,EurekaServer才能做負載均衡和路由分發等功能
spring-boot-starter-web、spring-boot-starter-web-services、fastjson:這個是為了測試本項目,寫了一個接口,返回數據json格式
spring-boot-starter-actuator:這個是actuator監控主程序,在正式的項目中,比如有很多的客戶端,我們使用kill -9 關閉一個服務,但是在Eureka Server中還是存在的,引入這個包,我們才能優雅的關閉實例
配置application.yml
application.yml
下面我來解釋下
prefer-ip-address: 在集群部署時以IP來區分各個實例,默認是以localhost,因為每一臺機器的默認主機名是localhost,所以集群環境下顯然不行
hostname:配置了上面,這個就可以不用配置了,當然配置了也沒有任何壞處
instance-id:在EurekaServer中status的顯示方式:ip+應用名稱+端口
defaultZone:需要註冊到哪個EurekaServer,如果是集群環境,只要寫一個就可以了,因為集群環境下的EurekaServer可以相互通知,EurekaClient可以相互同步
port和name就不介紹了,很常用
management.endpoints.web.exposure.include: 這個是開放一個可以監控程序的端口,只要配置就可以使用了,使用了3個端口,用的方法是10.12.49.143:7002/actuator/shutdown,需要加上一個actuator,如果不加也可以,有一個base-path配置,默認是/actuator
endpoint.shutdown.enabled: true:開啟優雅關閉系統
設置啟動程序
Client啟動程序
- OK!client已經成功搭建,我們啟動下。。。
用網頁打開兩個EurekaServer,顯示服務已經上線!如果這時我們直接關閉idea,服務並不會馬上消失?那怎麼辦呢?我想要的是如果關閉程序,服務在這個立馬下線!
由於我們剛剛配置了監控程序的優雅關閉功能,只要打開postman,發送一個post請求即可!
EurekaServer-191
EurekaServer-190
優雅關閉系統
發送post請求後,我們看到idea自動關閉了程序,並且在兩個EurekaServer上,服務也已經成功下線!
這才是正確關閉程序的方式!以前都是直接kill的,那種方式很不安全!
後續
既然可以監控每個服務的狀態,那麼以後我想要寫一個管理頁面,把這些服務管理起來,做到上線和下線的監控和操作