javascript
SpringCloud的五大核心组件李俊老师
文章目錄
- 樂優項目SpringCloud筆記總結
- 注冊中心Eureka,ly-registry服務端
- Feign實現遠程調用
- Ribbon負載均衡
- Hystrix熔斷器
- zuul網關
樂優項目SpringCloud筆記總結
ly-item 商品的的mapper模塊,里面有datasource
ly-cart: 購物車模塊
ly-registry: 注冊中心服務端,其他的模塊都是客戶端
ly-api-gateway: 路由網關
ly-feign:遠程調用
注冊中心Eureka,ly-registry服務端
lyregistry這個Module作為服務端
服務端可以進行配置
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 #關閉自我保護eviction-interval-timer-in-ms: 5000 #每隔5秒進行一次服務列表清理 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作為客戶端進行相關的測試:
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);} }加入相關的客戶端實現的依賴:
<!--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實現遠程調用 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秒發送一次心跳lease-expiration-duration-in-seconds: 10 #10秒不發送就過期prefer-ip-address: trueip-address: 127.0.0.1instance-id: ${spring.application.name}:${server.port}# 對Ribbon進行配置 item-service: #feign里面負載均衡配置ribbon:ConnectTimeout: 250 # Ribbon的連接超時時間ReadTimeout: 3000 # Ribbon的數據讀取超時時間OkToRetryOnAllOperations: true # 是否對所有操作都進行重試MaxAutoRetriesNextServer: 1 # 切換實例的重試次數MaxAutoRetries: 1 # 對當前實例的重試次數feign:hystrix:enabled: true # 開啟Feign的熔斷功能,默認為關閉Feign實現遠程調用
ly-user這個模塊調用ly-item
在ly-user的pom.xml文件加入feign的依賴
在ly-user的LyApplication 啟動類上加入**@EnableFeignClients**注解
在client客戶端下面創建一個itemClient接口
加上這個前端要用的請求的路徑。
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負載均衡
Hystrix熔斷器
feign里面自帶熔斷器,但是默認是關閉狀態的,需要手動開啟
使ly-user模塊調用ly-item模塊,需要feign和hystrix,進行hystrix步驟:
zuul網關
啟動類上面 加上**@EnableZuulProxy** 網關代理注解
在ly-api-gateway的application.yml文件中配置網關,注意一下:routes 下面的 item-service是配置文件中的spring.application.name 的名字
通過網關進行訪問ly-item里面的增刪改查的操作。
http://localhost:10000/api/item/brand 和 不用網關訪問的效果一樣 http://localhost:10010/brand
zuul自帶hystrix和Ribbon功能,需要我們通過配置文件開啟
網關可以進行過濾的配置
總結
以上是生活随笔為你收集整理的SpringCloud的五大核心组件李俊老师的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式系统,嵌入式系统定义和使用,嵌入式
- 下一篇: 女研究生的爱情分析