IDEA快速搭建 SpringCloud 註冊中心與
第一步:建立 註冊中心(eureka)專案
按照以下步驟一步一步來(只是對於IDEA的初學者來說)
(我這裡選擇maven專案、比較方便)
給註冊中心專案 取上可愛的名稱
第二步配置 eureka的pom檔案
具體配置資訊(只是一個模板,所以比較少)。
<!-- springcloud版本宣告 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 引入eureka依賴 -->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
第三步:搭建eureka的配置檔案(我這裡採用aplication.yml的方式,你們也可以採用 properties的方式),yml真的很好用,結構一目瞭然
server:
port: 8001 # 配置我們註冊中心的埠
eureka:
server:
waitTimeInMsWhenSyncEmpty: 0
instance:
hostname: 127.0.0.1 # url路徑 我採用的是本地路徑
client:
# 表明是否自身註冊到eureka 伺服器上
registerWithEureka: false
# 是否從 eureka 伺服器上獲得註冊資訊
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #eureka 完整配置地址
第四步:編寫一個main函式,啟動訪問就可以了
請注意 @EnableEurekaServer
頁面輸入127.0.0.1:8001 看見這個頁面表示我們的註冊中心已經做好了,
以上就是一個簡單的 註冊中心模板,這樣完全無法滿足我們對知識的渴望,所有我要要搭建一個可以 真正註冊並訪問的模板。
這時我們要搭建一個生產者(也就是提供服務的)。
首先我們建立一個專案,可以按照上面的步驟自己再建立一個新的專案 名稱可以自己取一個。不多說
第一步:建立好專案後配置 pom.xml檔案
具體配置資訊
<!-- springcloud版本宣告 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- eureka的依賴 -->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
第二步:配置檔案資訊
埠一個不要後 註冊中心 eureka 一樣,要不然會報錯,端口占用。yml檔案配置資訊如下
server:
port: 8004
spring:
application:
name: producer-service
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:8001/eureka/
instance:
prefer-ip-address: true #用兩種方式進行註冊,一種是使用主機名註冊,一種是使用ip地址進行註冊,這裡使用ip地址進行註冊
第三步:搭建介面,讓消費方進行訪問
我這裡寫了一個Controller 和 普通的沒有區別,為服務系統本身就是每個系統都可以獨立訪問。具體的邏輯 可以隨便怎麼寫,哪怕輸出一句 hoello word
第四步:編碼main函式,進行啟動
這裡請注意 我這裡 ApplicationMain上 給的註解 是 @EnableEurekaClient
和註冊中心(euceka)不一樣,上面是服務、這裡要將 他註冊到註冊中心裡。
第五步:驗收
我們已經註冊到註冊中心裡去了
並且可以單獨執行
服務方,我們就搭建好了,接下來我們呼叫服就可以了
我們同樣也是需要重新搭建一個專案。
第一步:pom檔案
也是原來的配置資訊
<!-- springcloud版本宣告 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 引入eureka依賴 -->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
第二步:yml配置資訊
注意埠不要重複
server:
port: 8003
spring:
application:
name: consumers-service
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:8001/eureka/
instance:
prefer-ip-address: true #用兩種方式進行註冊,一種是使用主機名註冊,一種是使用ip地址進行註冊,這裡使用i
第三步:呼叫服務介面
我這裡寫一個service 這樣分開也比較明白,我們具體說一下以下資訊
第一個RestTemplate 我們通過他就可以訪問服務介面了。
return restTemplate.getForObject 有三個引數 ,
第一引數: 訪問的ulr producer-service是生產者註冊到註冊中心的名稱(yml中配置有)userController/queryUser/ 也就就是 具體Controller 的和具體方法了。
第二個引數:返回值 ,我這裡返回的Strign 那麼就是String.class。
第三個引數:也就是介面引數。我這裡沒有引數,就沒給,反正就是測試一下。
return restTemplate.getForObject("http://producer-service/userController/queryUser/",String.class);
然後再寫一個Controller ,供前臺訪問
第四步:啟動 註冊並訪問
這裡很重要,我們上面所說用 RestTemplate 就可以直接訪問了,但是他並沒用在spring容器中,如果不配置這啟動就會報錯
@Bean 配置RestTemplate 在spring 容器中。
@LoadBalanced 讓其支援負載均衡功能。細節我會以後再補充
/**
* @Bean 表示將RestTemplate 配置到bean容器中
* @LoadBalanced 表示支援負載均衡
* @return
*/
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
驗收我們的成果吧。
註冊中心已經有了我們的 消費方的服務資訊了。
我們的資料就是從 8005埠來的,
看到了吧,這樣表示我們已經寫好了。
到這裡我們一個簡單的 springCloud 註冊中心 與訪問就寫好,裡面用到的知識點,我會再以後 寫到部落格中。
學到一點,總結一點,進步一點。
以上案例希望可以幫助到你們,共同進步。
如果配置有問題,請聯絡我QQ 1352216469 。
我是一隻菜鳥,但是如果讓你搞懂了,不是說你連菜鳥都不如,而是說我真的明白了。