Eureka Server的搭建
序言
年關將至,最近項目不太忙,準備利用這點空閒時間整理下2019年的技術經驗,希望看到的童鞋能完美的避開坑!
Eureka簡介
Eureka是一個用於服務註冊和發現的組件,分為Eureka server和Eureka client,server為Eureka服務註冊中心,Eureka Client 為Eureka客戶端
話不多說,上代碼(Talk is cheap. Show me the code.)
由於以後在真實的項目中採用的都是springboot,如果每一個功能都是一個springboot,那服務會非常非常的多,部署也不方便,同樣代碼的查看也不方便,為此,我的建議是採用maven父子工程的方式進行項目管理
首先,打開idea,新建工程,這裡我們新建一個maven工程,因為該工程是要作為父級工程的,即pom
然後我們修改下pom文件的內容,結果如下
maven父工程-01
maven父工程-02
OK!父級工程我們已經新建好了
然後我們刪除一些不需要的文件,比如src
接下來我們開始建立子項目,當然,第一個子項目是Eureka Server,它是springcloud的組件基礎,我們新建一個Module,然後類型還是選擇pom,artifactId我們就寫eureka_server吧,點擊完成,然後我們修改下pom
新建maven子工程
子項目pom文件
這裡我選擇的是spring-cloud-starter-netflix-eureka-server,有些書上說要寫spring-cloud-starter-eureka-server,然後我打開maven庫看了下,提示了過時,並給出了推薦,OK。。
maven庫提示
出了pom上述的內容外,pom還包含了一個插件,除了自帶的springboot插件外,我這邊新增了一個跳過單元測試的插件,免得每次打包的時候都比較麻煩
maven構建管理
OK!pom文件搞定,接下我們寫下配置文件
Eureka Server配置文件
我來一行一行解釋下,我覺得這是正式項目的最簡配置了,基本上都是必須的
- spring.profiles: 打包時激活的命名空間,待會我演示集群部署的時候會用到
- spring.application.name: 改項目的名稱
- server.port: 項目端口號
- eureka.instance.hostname: Eureka實例的主機名稱(一般都是IP,這裡獲取IP的方式就是採用springcloud的內置的獲取IP的方式)
- eureka.client.server-url.defaultZone:因為這是集群部署方案,這個地址是對方的IP
- eureka.client.fetch-register和eureka.client.register-with-eureka如果是集群部署,不需要這兩個字段,如果是單機部署就寫false,它的目的是自己向自己註冊,因為Eureka Server理論上也是一個Client
OK!接下來我們新建一個啟動程序,加上註解@EnableEurekaServer
啟動程序
我們啟動程序,就可以通過web看到程序了
web終端
這裡我貼下linux的啟動腳本,嘻嘻
#!/bin/bash
nohup java -jar /usr/share/nginx/spring-cloud/eureka/eureka-1.0-SNAPSHOT.jar --spring.profiles.active=server_190 > /usr/share/nginx/spring-cloud/eureka/eureka.log 2>&1 &
以後直接運行這個腳本就行嘍