Spring Cloud 簡(jiǎn)介
Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)炸庞,斷路器,智能路由埠居,微代理事期,控制總線)。分布式系統(tǒng)的協(xié)調(diào)導(dǎo)致了樣板模式, 使用Spring Cloud開發(fā)人員可以快速地支持實(shí)現(xiàn)這些模式的服務(wù)和應(yīng)用程序兽泣。他們將在任何分布式環(huán)境中運(yùn)行良好,包括開發(fā)人員自己的筆記本電腦唠倦,裸機(jī)數(shù)據(jù)中心涮较,以及Cloud Foundry等托管平臺(tái)。
特性
Spring Cloud專注于提供良好的開箱即用經(jīng)驗(yàn)的典型用例和可擴(kuò)展性機(jī)制覆蓋狂票。
分布式/版本化配置
服務(wù)注冊(cè)和發(fā)現(xiàn)
路由
service - to - service調(diào)用
負(fù)載均衡
斷路器
分布式消息傳遞
服務(wù)注冊(cè)與發(fā)現(xiàn)
在簡(jiǎn)單介紹了Spring Cloud和微服務(wù)架構(gòu)之后,下面回歸本文的主旨內(nèi)容苫亦,如何使用Spring Cloud搭建服務(wù)注冊(cè)與發(fā)現(xiàn)模塊。
這里我們會(huì)用到Spring Cloud Netflix屋剑,該項(xiàng)目是Spring Cloud的子項(xiàng)目之一,主要內(nèi)容是對(duì)Netflix公司一系列開源產(chǎn)品的包裝唉匾,它為Spring Boot應(yīng)用提供了自配置的Netflix OSS整合。通過一些簡(jiǎn)單的注解巍膘,開發(fā)者就可以快速的在應(yīng)用中配置一下常用模塊并構(gòu)建龐大的分布式系統(tǒng)。它主要提供的模塊包括:服務(wù)發(fā)現(xiàn)(Eureka)峡懈,斷路器(Hystrix),智能路有(Zuul)肪康,客戶端負(fù)載均衡(Ribbon)等。
所以磷支,我們這里的核心內(nèi)容就是服務(wù)發(fā)現(xiàn)模塊:Eureka。下面我們動(dòng)手來(lái)做一些嘗試雾狈。
創(chuàng)建 Eureka-Server
-
創(chuàng)建springboot工程,引入依賴
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/>
</parent><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Dalston.SR4</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
-
啟動(dòng)類上寫注解
@EnableEurekaServer
@SpringBootApplication @EnableEurekaServer public class SpringCloudEurekaServerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudEurekaServerApplication.class, args); } }
-
修改application配置文件辩蛋,添加配置
spring.application.name=eureka-server #服務(wù)名稱 server.port=8080 eureka.instance.hostname=localhost # 應(yīng)用的主機(jī)名稱 eureka.client.register-with-eureka=false #自身僅作為服務(wù)器 eureka.client.fetch-registry=false # 無(wú)需注冊(cè)自身
-
啟動(dòng)效果,可以看到?jīng)]有任何服務(wù)注冊(cè)上來(lái)
公共eureka-server服務(wù)
為了大家更好的學(xué)習(xí)spring-cloud 我用良心云做了臺(tái)公共的eureka-server
http://eureka-server.jetbrains.org.cn
在Spring Cloud應(yīng)用的配置文件中擂错,設(shè)置eureka的地址為:
eureka.client.serviceUrl.defaultZone=http://eureka-server.jetbrains.org.cn/eureka/
注意:
因?yàn)榉?wù)器性能較差樱蛤,1c2g1m的良心云,請(qǐng)不要壓測(cè)昨凡,且已加監(jiān)控。
參考資料
https://github.com/changdaye/spring-cloud-study/tree/master/spring-cloud-eureka-server
https://springcloud.cc/spring-cloud-dalston.html#spring-cloud-eureka-server