springcloud是微服務的一套解決方案,他不是框架而是很多元件的集合,他可以為springboot建立的乙個個的服務模組整合起來進行管理,為各個服務提供了註冊中心用於發現服務,配置管理,負載均衡,熔斷器等;
微服務是一種架構風格;我們可以根據業務功能的不同將傳統的一站式的引用拆分成乙個個的服務來降低耦合度;
每乙個微服務提供單獨的業務服務功能;
1,dubbo是基於rpc的遠端呼叫;它是基於介面來提供服務的;將其註冊到zookeeper註冊中心什麼是eureka?2,springcloud是基於http協議的遠端呼叫,我們可以把每乙個微服務註冊到eureka註冊中心,使用feign進行呼叫;
springcoud相對於dubbo的好處:
springcoud是基於http遠端呼叫說明它是可以跨語言的,即使是不同的語言開發的微服務模組,之間只要遵循一定的規則就可以實現相互呼叫;而dubbo是基於介面的他的侷限性就是不能實現跨語言呼叫;
他其實就是我們的微服務註冊中心,我們把開發的微服務註冊到eureka註冊中心,讓eureka幫我們管理微服務的ip和埠;我們使用的時候只需要根據http協議進行呼叫就行了; 並且springcloud eureka有服務提供端和客戶端分別來實現服務註冊中心和服務的註冊;並且其內部預設整合了ribbon負載均衡和hystrix熔斷器;2,springcloud如何整合eureka註冊中心(服務提供端)?
1,首先匯入springcloud eureka座標
>
>
org.springframework.cloudgroupid
>
>
spring-cloud-starter-netflix-eureka-serverartifactid
>
dependency
>
2.配置.yml檔案明確埠號及eureka相關配置
server
:port
: $#服務埠,使用$是為了提供預設值
spring::
name
: xc-govern-center #指定服務名
eureka
:client
:registerwitheureka
:false
#服務註冊,是否將自己註冊到eureka服務中,當配置多個eureka之後需要設定為true
fetchregistry
:false
#服務發現,是否從eureka中獲取註冊資訊,當配置多個是需要設定為true
serviceurl
:#eureka客戶端與eureka服務端的互動位址,高可用狀態配置對方的位址,單機狀態配置自己(如果不配置則預設本機8761埠)
defaultzone
: $server
:enable-self-preservation
:false
#是否開啟自我保護模式
eviction-interval-timer-in-ms
:60000
#服務登錄檔清理間隔(單位毫秒,預設是60*1000)
instance
:hostname
: $#配置預設是第乙個eureka註冊中心
3
,在啟動類上新增開啟eureka註冊中心註解
@enableeurekaserver
//標識這是乙個erueka輔助註冊中心
public
class
}
3,springcloud如何整合eureka客戶端?
1,匯入springcloud eureka的相關客戶端座標;
>
>
org.springframework.cloudgroupid
>
>
spring-cloud-starter-netflix-eureka-clientartifactid
>
dependency
>
2,配置.yml檔案
eureka
:client
:registerwitheureka
:true
#服務註冊開關
fetchregistry
:true
#服務發現開關
serviceurl
:#eureka客戶端與eureka服務端進行互動的位址,多個中間用逗號分隔
defaultzone
: $instance
:prefer-ip-address
:true
#將自己的ip位址註冊到eureka服務中
ip-address
: $instance-id
:$#指定例項id
3
,在啟動類上新增註解允許發現該服務並註冊到eureka註冊中心;
@enablediscoveryclient
//允許發現該服務註冊到eureka
public
class
}
feign是乙個輕量級的rest客戶端,使用feign可以很方便的實現http客戶端,springcloud引入了feign並且整合了ribbon負責均衡器,和hystrix熔斷器;
1,匯入springcloud feign的相關依賴座標;
>
>
org.springframework.cloudgroupid
>
>
spring-cloud-starter-openfeignartifactid
>
dependency
>
2
,在服務呼叫方工程中編寫feign的客戶端介面;
//feignclient介面 有引數在引數必須加
//@pathvariable("***")和@requestparam("***")註解;
@feignclient
("springcloud-producer"
)//明確feign客戶端並指定拉去哪乙個服務
public
inte***ce
userserviceclient")
public user findonebyid
(@pathvariable
("id"
) long id)
;}
3
,啟動類中新增@enablefeignclients註解;
@enablediscoveryclient //發現服務註冊到eureka*/
//此註解取代上面兩個註解
@enablefeignclients
//開啟feign功能
public
class
/*@bean //將restmplate注入到容器用於呼叫使用http呼叫微服務(使用feign之後就不需要再一次使用這個restmplate了)
@loadbalanced
public resttemplate resttemplate()
*/}
一些flash memory SSD的基礎知識
很久沒更新blog了。前一陣子經歷了人生第一次跳槽,比想象中的艱難多了。畢竟是第乙份工作,離開還是挺傷感的。新的工作剛剛開始,希望一切順利。這篇blog是五一期間寫的,今天正式貼出來。寫技術blog是個好習慣,我要保持!在前東家的時候,一直很想去嘗試一下flash ssd,可惜由於各種原因到今天也沒...
一些flash memory SSD的基礎知識
很久沒更新blog了。前一陣子經歷了人生第一次跳槽,比想象中的艱難多了。畢竟是第乙份工作,離開還是挺傷感的。新的工作剛剛開始,希望一切順利。這篇blog是五一期間寫的,今天正式貼出來。寫技術blog是個好習慣,我要保持!在前東家的時候,一直很想去嘗試一下flash ssd,可惜由於各種原因到今天也沒...
一些flash memory SSD的基礎知識
很久沒更新blog了。前一陣子經歷了人生第一次跳槽,比想象中的艱難多了。畢竟是第乙份工作,離開還是挺傷感的。新的工作剛剛開始,希望一切順利。這篇blog是五一期間寫的,今天正式貼出來。寫技術blog是個好習慣,我要保持!在前東家的時候,一直很想去嘗試一下flash ssd,可惜由於各種原因到今天也沒...