javascript
学习Spring-Cloud –基础结构和配置
我有機會與Spring-Cloud一起創建了一組云就緒微服務的樣本集,Spring-Cloud如何使不同的基礎架構組件和服務很好地協同工作給我留下了深刻的印象。
我習慣于基于基于Netflix OSS的堆棧創建微服務,通常在Netflix堆棧中, Eureka被認為是微服務進行自我注冊和發現彼此的樞紐。 本著這種模式的精神,我想嘗試一系列看起來像這樣的服務:
這里有2種微服務:
- 響應“ ping”消息的樣本乒乓服務
- 使用“乒乓”微服務的抽樣服務
并且有兩個基礎架構組件:
- Sample-config為2個微服務提供集中配置
- 尤里卡(Eureka)是中央樞紐,為服務注冊和發現其他服務提供了一種方式
因此,首先,我將介紹如何使用spring-cloud開發兩個基礎架構組件,并緊跟其后如何開發微服務以使用這些組件。
- 整個項目在我的github位置上可用。
尤里卡
Spring-cloud使創建Eureka的實例非常簡單,所需要做的只是遵循以下幾行的類:
package org.bk.eureka;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication @EnableEurekaServer public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);} }可以啟動多個Eureka實例,并將其配置為以彈性方式協同工作,盡管在這里,我只想演示一個獨立的Eureka實例,并且可以使用類似以下的配置來完成,本質上是在端口8761上啟動eureka并且在獨立模式下不嘗試查找對等方:
--- # application.yml server:port: 8761eureka:instance:hostname: localhostclient:registerWithEureka: falsefetchRegistry: false配置服務器
Spring-Cloud提供了一個集中式配置服務器,微服務可用于加載其屬性。 通常,微服務可能希望采用以下兩種方式之一:
我個人更喜歡Eureka優先方法,在此示例配置服務器中向Eureka注冊了自己,當微服務啟動時,他們首先向Eureka進行了檢查,找到Configuration服務并使用該服務加載其屬性。
配置服務器也很容易使用Spring-cloud編寫,以下是所需的所有代碼:
package org.bk.configserver;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication @EnableConfigServer @EnableEurekaClient public class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);} }以及向Eureka注冊此服務的配置:
--- # bootstrap.yml spring:application:name: sample-configprofiles:active: nativeeureka:instance:nonSecurePort: ${server.port:8888}client:serviceUrl:defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/--- # application.yml spring:cloud:config:server:native:searchLocations: classpath:/configserver:port: 8888配置服務器從端口8888啟動,并從類路徑提供配置。 在實際的應用程序中,可以將配置設置為從中央git存儲庫加載,這種方式為版本屬性提供了一種簡潔的方法,并且可以集中管理屬性。 在這種特定情況下,由于它提供了兩個微服務的屬性,因此類路徑中有兩組文件,并為調用應用程序提供了適當的屬性:
--- #sample-pong.yml reply:message: Pong--- # sample-ping.yml send:message: Ping啟動Eureka和配置服務器
由于這兩個應用程序都是基于Spring-boot的,因此可以通過運行以下命令來分別啟動它們:
mvn spring-boot:run一旦Eureka和Configuration Server正常啟動,Eureka將提供一個不錯的界面,其中包含向其注冊的服務的詳細信息,在這種情況下,Configuration Server的名稱為“ SAMPLE-CONFIG”:
配置服務器通過端點通過以下模式為調用應用程序提供屬性: /{application}/{profile}[/{label}]
因此,要檢索“ sample-pong”應用程序的屬性,應用程序將在內部使用以下URL: http://localhost:8888/sample-pong/default
對于“ sample-ping”應用程序,屬性可以從http://localhost:8888/sample-ping/default派生
到此,結束了有關如何啟動云就緒系統的基礎架構組件的詳細說明。 我將繼續介紹如何利用這些基礎架構組件開發微服務。
- 這些示例背后的代碼可在我的github存儲庫中找到 。
翻譯自: https://www.javacodegeeks.com/2015/06/learning-spring-cloud-infrastructure-and-configuration.html
總結
以上是生活随笔為你收集整理的学习Spring-Cloud –基础结构和配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq号怎么注销账号
- 下一篇: 西晋的建立者是谁 西晋的建立者介绍