小編2015年進(jìn)入一家互聯(lián)網(wǎng)公司開始接觸微服務(wù)。當(dāng)時(shí)對(duì)微服務(wù)的概念也是懵懵懂懂。在逐步的探索中,踩了大大小小的坑不計(jì)其數(shù)。最開始使用的還是Springboot1.4.x的版本。版本的升級(jí)也遇到了許多的麻煩。所有與微服務(wù)相關(guān)的組件都需要自己動(dòng)手搭建。比如服務(wù)注冊(cè)發(fā)現(xiàn)、負(fù)載均衡、API網(wǎng)關(guān)等重量級(jí)的組件。系統(tǒng)跑的磕磕絆絆。
現(xiàn)如今,Spring Cloud已經(jīng)非常成熟了。上面提到的相關(guān)組件與Spring Cloud已經(jīng)可以無縫連接,如果你使用Maven作為構(gòu)建工具的話,只需要引入你想要的依賴,并在代碼上加上相關(guān)的注解,或者在配置文件中輸入你想要的配置,可以說是分分鐘搞定一個(gè)微服務(wù)的框架。今天小編就來介紹一下搭建基于Spring Cloud的微服務(wù)框架是多么簡單。
1、 搭建工程。
1.1、任意位置創(chuàng)建一個(gè)目錄spring-cloud,在此目錄下創(chuàng)建一個(gè)文本文件,取名pom.xml。

1.2、 IDEA打開spring-cloud工程。你的第一個(gè)Spring Cloud微服務(wù)框架工程搭建完成啦!
2、 服務(wù)注冊(cè)與發(fā)現(xiàn)Eureka Server。
2.1、創(chuàng)建一個(gè)新的module,取名eureka-server。pom.xml文件添加spring-cloud-starter-eureka-server依賴。
2.2、創(chuàng)建啟動(dòng)類,啟動(dòng)類中添加@EnableEurekaServer注解。配置文件Application.yml文件添加spring.application.name=eureka-server、server.port=8761。eureka.client.register-with-eurkea和eureka.client.fetch-registry給false。eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/。
2.3、啟動(dòng)eureka-server。

3、 客戶端負(fù)載均衡Ribbon Client。
3.1、創(chuàng)建一個(gè)customer-service的module。
3.2、pom.xml添加spring-cloud-starter-netflix-eureka-server和spring-cloud-starter-netflix-ribbon依賴。
3.3、創(chuàng)建啟動(dòng)類,并添加@ EnableEurekaClient注解。注入一個(gè)restTemplate的bean。加上@LoadBanlanced注解。
3.4、添加application.yml文件,spring.application.name=customer-service、server.port=8010、eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/。
同上4個(gè)步驟再創(chuàng)建一個(gè)provider-service的module。配置基本相同,只是不用注入restTemplate。
啟動(dòng)customer-service和provider-service兩個(gè)服務(wù),provider-service可以任意發(fā)布出來一個(gè)rest接口。customer-service中使用provider-service這個(gè)虛擬的IP去調(diào)用,測試一下效果。
如果provider-service啟動(dòng)多個(gè)端口,看看是否實(shí)現(xiàn)了負(fù)載均衡?
Feign、Hystrix、Zuul和Spring Cloud Config后續(xù)文章再行介紹。