在前面的過程當中,咱們建立了4個project:html
咱們使用Eureka 做爲服務發現組件,學習了Eureka Server
,Eureka Client
的使用。java
Eureka Servermysql
<dependency> <groupId>org.springframework.cloud</groupId> <!--<artifactId>spring-cloud-netflix-eureka-server</artifactId>--> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.2.7.RELEASE</version> </dependency>
@SpringBootApplication @EnableEurekaServer public class DiscoveryApplication { public static void main(String[] args) { SpringApplication.run(DiscoveryApplication.class, args); } }
eureka: instance: hostname: server1 prefer-ip-address: false client: service-url: defaultZone: http://server2:8888/eureka/,http://server3:9999/eureka/
使用Sprint Boot 項目三部曲,咱們能夠快速添加一個新組件,並正常使用git
Nacos Servergithub
這個我沒有在項目中實現,可是你們能夠和Eureka同樣,三部曲搞定。spring
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>0.9.0.RELEASE</version> </dependency>
加註解sql
在早期版本中,咱們須要添加@EnableDiscoveryClient
,可是在nacos 0.9以後,不須要咱們顯示的添加註解了~,所以這步能夠忽略。數據庫
改配置api
spring: cloud: nacos: discovery: server-addr: localhost:8848 #前提是要啓動Nacos Server metadata: version: v1 # 指定namespace(profile) #namespace: 404060ce-2e6c-4f72-8083-2beb4ca921ad # 指定集羣名稱 cluster-name: BJ
Nacos Server ,請你們自行搜索,可參考 Nacos Github負載均衡
服務發現
上,所以它也是一個client,那麼須要引入spring-cloud-starter-netflix-eureka-client
)<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies>
/** * @SpringCloudApplication 是如下三個註解的組合註解 * @see SpringBootApplication // 標柱是Spring Boot 項目啓動 * @see EnableDiscoveryClient // 標柱爲服務發現 client,引入Eureka依賴以後 等同於 @EnableEurekaClient * @see EnableCircuitBreaker // 斷路器,後續咱們會講解 */ @SpringCloudApplication @EnableZuulProxy //啓動網關代理服務 public class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class, args); } }
zuul: # ignored-services: '*' # 過濾全部請求,除了下面routes中聲明過的服務 routes: sponsor: #在路由中自定義服務路由名稱 path: /ad-sponsor/** serviceId: mscx-ad-sponsor #微服務name strip-prefix: false search: #在路由中自定義服務路由名稱 path: /ad-search/** serviceId: mscx-ad-search #微服務name strip-prefix: false prefix: /gateway/api strip-prefix: true #不對 prefix: /gateway/api 設置的路徑進行截取,默認轉發會截取掉配置的前綴
具體的代碼,參考源代碼實現。
這個其實你們就能夠看成是本項目內的工具類就好了,沒什麼特殊的需求。
該項目中,咱們使用到的技術有:
jpa
後續咱們要添加的技術
每一種技術都有一套完整的實現以及框架,想要深刻學習的同窗請自行索引,後期廣告系統結束以後,我會另起一個系列來和你們一塊兒討論框架底層實現。