javascript
SpringCloud的五大核心组件李俊老师
文章目錄
- 樂優(yōu)項(xiàng)目SpringCloud筆記總結(jié)
- 注冊(cè)中心Eureka,ly-registry服務(wù)端
- Feign實(shí)現(xiàn)遠(yuǎn)程調(diào)用
- Ribbon負(fù)載均衡
- Hystrix熔斷器
- zuul網(wǎng)關(guān)
樂優(yōu)項(xiàng)目SpringCloud筆記總結(jié)
ly-item 商品的的mapper模塊,里面有datasource
ly-cart: 購(gòu)物車模塊
ly-registry: 注冊(cè)中心服務(wù)端,其他的模塊都是客戶端
ly-api-gateway: 路由網(wǎng)關(guān)
ly-feign:遠(yuǎn)程調(diào)用
注冊(cè)中心Eureka,ly-registry服務(wù)端
lyregistry這個(gè)Module作為服務(wù)端
服務(wù)端可以進(jìn)行配置
server:port: 10086spring:application:name: ly-registryeureka:client:fetch-registry: falseregister-with-eureka: falseservice-url:defaultZone: http://localhost:${server.port}/eurekaserver:enable-self-preservation: false #關(guān)閉自我保護(hù)eviction-interval-timer-in-ms: 5000 #每隔5秒進(jìn)行一次服務(wù)列表清理 package com.yunhe;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication @EnableEurekaServer public class LyRegistry {public static void main(String[] args) {SpringApplication.run(LyRegistry.class,args);} }使用ly-user作為客戶端進(jìn)行相關(guān)的測(cè)試:
package com.yunhe;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients //開啟feign功能 public class LyUserApplication {public static void main(String[] args) {SpringApplication.run(LyUserApplication.class,args);} }加入相關(guān)的客戶端實(shí)現(xiàn)的依賴:
<!--eureka client--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId><version>2.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--feign實(shí)現(xiàn)遠(yuǎn)程調(diào)用 ly-item--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.0.0.RELEASE</version></dependency><dependency><groupId>javax.persistence</groupId><artifactId>persistence-api</artifactId><version>1.0</version></dependency>客戶端的配置
server:port: 10010spring:application:name: item-servicedatasource:url: jdbc:mysql://localhost:3306/leyou?characterEncoding=UTF-8&useSSL=falseusername: rootpassword: roothouzhiconghikari:maximum-pool-size: 30minimum-idle: 10eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eurekainstance:lease-renewal-interval-in-seconds: 5 #每隔6秒發(fā)送一次心跳lease-expiration-duration-in-seconds: 10 #10秒不發(fā)送就過(guò)期prefer-ip-address: trueip-address: 127.0.0.1instance-id: ${spring.application.name}:${server.port}# 對(duì)Ribbon進(jìn)行配置 item-service: #feign里面負(fù)載均衡配置ribbon:ConnectTimeout: 250 # Ribbon的連接超時(shí)時(shí)間ReadTimeout: 3000 # Ribbon的數(shù)據(jù)讀取超時(shí)時(shí)間OkToRetryOnAllOperations: true # 是否對(duì)所有操作都進(jìn)行重試MaxAutoRetriesNextServer: 1 # 切換實(shí)例的重試次數(shù)MaxAutoRetries: 1 # 對(duì)當(dāng)前實(shí)例的重試次數(shù)feign:hystrix:enabled: true # 開啟Feign的熔斷功能,默認(rèn)為關(guān)閉Feign實(shí)現(xiàn)遠(yuǎn)程調(diào)用
ly-user這個(gè)模塊調(diào)用ly-item
在ly-user的pom.xml文件加入feign的依賴
在ly-user的LyApplication 啟動(dòng)類上加入**@EnableFeignClients**注解
在client客戶端下面創(chuàng)建一個(gè)itemClient接口
加上這個(gè)前端要用的請(qǐng)求的路徑。
itemClient:
package com.yunhe.client;import com.yunhe.pojo.Brand; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*;import java.util.List;//注意:類上面不要寫@RequestMapping @FeignClient(name = "item-service",fallback = ItemClientFallback.class) public interface ItemClient {@GetMapping("brand")public List<Brand> listAll();} @RestController public class UserController {@Autowiredprivate ItemClient itemClient;@GetMappingpublic List<Brand> queryAllBrands(){return itemClient.listAll();} }Ribbon負(fù)載均衡
Hystrix熔斷器
feign里面自帶熔斷器,但是默認(rèn)是關(guān)閉狀態(tài)的,需要手動(dòng)開啟
使ly-user模塊調(diào)用ly-item模塊,需要feign和hystrix,進(jìn)行hystrix步驟:
zuul網(wǎng)關(guān)
啟動(dòng)類上面 加上**@EnableZuulProxy** 網(wǎng)關(guān)代理注解
在ly-api-gateway的application.yml文件中配置網(wǎng)關(guān),注意一下:routes 下面的 item-service是配置文件中的spring.application.name 的名字
通過(guò)網(wǎng)關(guān)進(jìn)行訪問ly-item里面的增刪改查的操作。
http://localhost:10000/api/item/brand 和 不用網(wǎng)關(guān)訪問的效果一樣 http://localhost:10010/brand
zuul自帶hystrix和Ribbon功能,需要我們通過(guò)配置文件開啟
網(wǎng)關(guān)可以進(jìn)行過(guò)濾的配置
總結(jié)
以上是生活随笔為你收集整理的SpringCloud的五大核心组件李俊老师的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式系统,嵌入式系统定义和使用,嵌入式
- 下一篇: 狂神说Spring讲解第19动态代理中错