跟著小白學SpringCloud(一)

2021-10-04 21:50:59 字數 3845 閱讀 4150

springcloud也是基於rpc遠端呼叫的,是在soa架構基礎上演變而來,相對於soa架構來說更加請假,而且開發要求不是特別嚴格,基於http+rest+json進行資料的傳輸

springcloud基於springboot,提供很多元件,有eureka,ribbon,fegion,zuul,config等

springcloud當中自帶註冊中心,該角色就是eureka,主要用於服務發現和呼叫,分為兩個角色:

eurekaserver:服務端 @enableeurekaserver

管理服務,對外暴露位址

eurekaclient:客戶端 @enableeurekaclient

連線到服務端,例如生產者連線到服務端,向上註冊服務。 消費者連線到服務端,往下取服務

註冊中心環境搭建:

步驟一:匯入依賴

父工程中匯入springboot依賴

org.springframework.boot<

/groupid>

spring-boot-starter-parent<

/artifactid>

2.1.4

.release<

/version>

<

/parent>

子工程:

<

!--eureka依賴--

>

org.springframework.cloud<

/groupid>

spring-cloud-starter-netflix-eureka-server<

/artifactid>

<

/dependency>

<

/dependencies>

<

!--springcloud依賴--

>

org.springframework.cloud<

/groupid>

spring-cloud-dependencies<

/artifactid>

greenwich.release<

/version>

pom<

/type>

import

<

/scope>

<

/dependency>

<

/dependencies>

<

/dependencymanagement>

步驟二:建立配置檔案,配置eureka

#宣告埠

server:

port:

8001

#配置eureka

eureka:

client:

#是否把自己註冊到註冊中心當中去,預設值為true

register-with-eureka:

false

#表示是否從eureka server獲取註冊資訊,預設為true

fetch-registry:

false

#配置註冊中心位址

#應用名稱,應用名不能有_

spring:

name: eureka-server

步驟三:建立啟動類

@enableeurekaserver

//代表是eureka伺服器

public

class

starteurekaserver

}

eureka生產者:
步驟一:建立乙個業務介面

/*** 業務介面

*/public

inte***ce

dosomeservice

步驟二:建立乙個業務介面的實現類,利用http方式將次介面暴露出去

/*** 業務介面的實現類

*/@restcontroller

public

class

dosomeserviceimpl

implements

dosomeservice

} 步驟三:建立配置檔案,指定埠,應用名稱,eureka註冊中心

#埠號

server:

port:

9001

#應用名稱

spring:

name: eureka-provider

#配置eurekaserver註冊中心位址

/eureka

eureka消費者:
步驟一:建立乙個控制器,用於通過http請求到服務提供者

@restcontroller

("/dosomecon"

)public

class

dosomecontroller

} 步驟二:建立乙個啟動類,要將resttemplate模板注入到容器當中

@enableeurekaclient

public

class

startconsumer

//注入resttemplate模板

@bean

resttemplate resttemplate()

} 步驟三:建立配置檔案,指定埠,應用名稱,eureka註冊中心

#埠號

server:

port:

10001

#應用名稱

spring:

name: eureka-consumer

#註冊中心

/eureka

1.搭建生產者服務集群

條件:埠號不同,應用名稱要相同,資料同步

問題:消費者呼叫怎麼辦?

消費者不能根據埠號呼叫,通過應用名字呼叫

(

"/dosome"

)public string dosome()

附帶問題:resttemplate不知道要使用應用名字呼叫,預設使用的是ip+埠,解決辦法:在注入resttemplate模板時加入@loadbalanced註解
//注入resttemplate模板

@bean

@loadbalanced

//負載均衡配置,可以使用應用名稱呼叫服務

resttemplate resttemplate()

呼叫的機制(負載均衡機制):

在resttemplate模板上加入@loadbalanced註解,即可實現ribbon負載均衡,預設機制為輪訓機制

調整機制:

自定義演算法,也可以使用隨機訪問

//重新建立乙個均衡策略,表示不使用預設

@bean

public irule getireule()

跟著寵物學健身

貓有著無比柔軟和輕巧的身段,狗則充滿活力 動作靈活,它們的一些行為動作均可讓我們模仿,這麼做對健身大有好處 學貓狗走路。學 狗步 像狗那樣,四肢落地。用右手和左腳 左手和右 替伸出,移動身體前行。每天堅持走20步。可緩解長久站立或行走引起的腰痛 胃下垂 痔瘡及下肢腫脹等,對防治腰痛尤其有效。邁 貓步...

跟著cc學設計模式

1 責任鏈模式 在研磨設計模式裡,責任鏈模式主要講解的是 專案經理 部門經理 總經理之間審批活動經費之間的責任鏈,後來新增了審批出差經費 導致handler介面要增加乙個處理預支差旅費用的申請的方法 handleprefeerequest 這樣所有的實現類都要實現這個方法,改變比較大。違背了,介面時...

跟著鬼哥學android java hook(三)

按照上文的約定,我們繼續第三篇文章,找乙個遊戲來測試此框架和外掛程式的穩定性。乙個解謎逃脫類的遊戲,挺好玩的,我還是未破解情況下玩通上乙個版本了,新版本其實也出來兩三個月了,過了那個新鮮勁頭,就直接破解得了。遊戲正常的破解方面,讀者自己去搞吧,一般是看完我以前發過的所有文章,這個遊戲是很簡單搞定的,...