javascript
springcloud 消息队列_全面而且简洁介绍SpringCloud微服务
持續(xù)分享互聯(lián)網(wǎng)研發(fā)技術(shù)干貨,歡迎關(guān)注我。
Spring Cloud的目標(biāo)是為Spring開(kāi)發(fā)人員提供一套易于使用的工具來(lái)構(gòu)建分布式系統(tǒng)。它主要通過(guò)包裝其他實(shí)現(xiàn)堆棧,從Netflix OSS堆棧開(kāi)始。然后,這些堆棧將通過(guò)基于注釋的配置,Java配置和基于模板的編程的熟悉工具進(jìn)行消耗。我們來(lái)看幾個(gè)Spring Cloud的組件。
Spring Cloud配置服務(wù)器
Spring Cloud Config Server(配置服務(wù)器)提供了可水平擴(kuò)展的集中式配置服務(wù)。它使用可插拔存儲(chǔ)庫(kù)層作為其數(shù)據(jù)存儲(chǔ),當(dāng)前支持本地存儲(chǔ),Git和Subversion。通過(guò)利用版本控制系統(tǒng)作為配置存儲(chǔ),開(kāi)發(fā)人員可以輕松地對(duì)配置更改進(jìn)行版本化和審核。
配置表示為Java屬性或YAML文件。Config Server將這些文件合并到環(huán)境對(duì)象中,將對(duì)Spring屬性和配置文件的理解模型呈現(xiàn)為REST API。這個(gè)REST API可以直接由任何應(yīng)用程序查詢來(lái)獲取配置數(shù)據(jù),但可以將智能客戶端綁定添加到 Spring Boot 應(yīng)用程序中,這些應(yīng)用程序?qū)⒆詣?dòng)協(xié)調(diào)任何本地配置與配置服務(wù)器接收的配置。
Spring Cloud總線
Spring Cloud Config Server是一種強(qiáng)大的機(jī)制,用于在一組應(yīng)用程序?qū)嵗幸恢碌胤职l(fā)配置。然而,就目前而言,我們目前僅限于在應(yīng)用程序啟動(dòng)時(shí)更新此類配置。將屬性的新值推送到Git后,我們需要手動(dòng)重新啟動(dòng)每個(gè)應(yīng)用程序流程以獲取新值。我們想要的是在不重新啟動(dòng)的情況下刷新應(yīng)用程序配置的功能。
Spring Cloud Bus為您的應(yīng)用程序?qū)嵗砑右粋€(gè)管理背板。它目前被實(shí)現(xiàn)為客戶端綁定到一組AMQP交換和隊(duì)列,但這個(gè)后端也被設(shè)計(jì)為可插拔。Cloud Bus為您的應(yīng)用程序添加了更多的管理端點(diǎn)。在圖中,我們看到上POST到App A的/bus/refresh端點(diǎn)的一個(gè)請(qǐng)求,由此獲得Git的greeting屬性新值。此請(qǐng)求觸發(fā)三個(gè)事件:
Spring Cloud Netflix
Spring Cloud Netflix提供了幾個(gè)Netflix組件的封裝:Eureka,Ribbon,Hystrix和Zuul。下面依次討論這些。
Eureka是一個(gè)有彈性的服務(wù)注冊(cè)表實(shí)現(xiàn)。服務(wù)注冊(cè)表是用于服務(wù)發(fā)現(xiàn)的一種機(jī)制
Spring Cloud Netflix通過(guò)簡(jiǎn)單地將spring-cloud-starter-eureka-server依賴關(guān)系添加到Spring Boot應(yīng)用程序,然后用@EnableEurekaServer來(lái)標(biāo)注該應(yīng)用程序的配置類.
應(yīng)用程序可以通過(guò)添加spring-cloud-starter-eureka依賴關(guān)系并注釋@EnableDiscoveryClient其配置類來(lái)參與服務(wù)發(fā)現(xiàn)。此注釋提供了將DiscoveryClient正確配置的實(shí)例注入任何Spring Bean的功能。 DiscoveryClient是服務(wù)發(fā)現(xiàn)的抽象,在這種情況下恰好是通過(guò)Eureka實(shí)現(xiàn)的,但也可以提供與其他候選技術(shù)棧(如Consul)的集成。 DiscoveryClient 能夠提供位置信息(例如網(wǎng)絡(luò)地址),并提供根據(jù)服務(wù)邏輯標(biāo)識(shí)符在Eureka注冊(cè)服務(wù)實(shí)例的其它元數(shù)據(jù)。
Eureka提供的負(fù)載平衡算法只限于輪循。 Ribbon提供了一個(gè)復(fù)雜的客戶端IPC庫(kù),具有可配置的負(fù)載平衡和容錯(cuò)能力。可以從Eureka服務(wù)器獲取的動(dòng)態(tài)服務(wù)器列表導(dǎo)出輪詢列表。Spring Cloud Netflix通過(guò)向Spring Boot添加spring-cloud-starter-ribbonSpring添加依賴關(guān)系來(lái)提供輪詢Ribbon的集成。這個(gè)額外的庫(kù)也提供了將LoadBalancerClient正確配置的實(shí)例注入任何Spring Bean的能力,這將使客戶端獲得負(fù)載平衡(圖4)。
除了其他任務(wù)之外,使用Ribbon還可以實(shí)現(xiàn)額外的負(fù)載平衡算法,例如可用性過(guò)濾,加權(quán)響應(yīng)時(shí)間和可用性區(qū)域密切關(guān)系。
Spring Cloud Netflix將通過(guò)自動(dòng)創(chuàng)建一個(gè)RestTemplate的可以注入到任何Spring Bean中的Ribbon增強(qiáng)實(shí)例進(jìn)一步增強(qiáng)Spring開(kāi)發(fā)人員對(duì)Ribbon的使用。開(kāi)發(fā)人員可以簡(jiǎn)單地將提供URL中的邏輯服務(wù)名稱傳遞給RestTemplate:
@Autowired@LoadBalancedprivate RestTemplate restTemplate;@RequestMapping("/")public String consume() { ProducerResponse response = restTemplate.getForObject("http://producer總結(jié)
以上是生活随笔為你收集整理的springcloud 消息队列_全面而且简洁介绍SpringCloud微服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中央cctv5节目表
- 下一篇: js date转string_JS之你到