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