您好,登錄后才能下訂單哦!
這篇文章主要介紹“springCloud的使用方法”,在日常操作中,相信很多人在springCloud的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”springCloud的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
springCloud:微服務的實現方式。
SpringCloud從技術架構上降低了對大型系統構建的要求,使我們以非常低的成本(技術或者硬件)搭建一套高效、分布式、容錯的平臺,但SpringCloud也不是沒有缺點,小型獨立的項目不適合使用。
SpringCloud是一系列框架的有序集合。它利用SpringBoot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊,配置中心,消息總線,負載均衡,熔斷器,數據監控等,都可以用SpringBoot都開發風格做到一鍵啟動和部署。Spring并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟,經得起實際考驗的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂,易部署和易維護的分布式系統開發工具包。
微服務是考驗獨立部署,水平擴展,獨立訪問的服務單員。
組件:
Eureka:注冊中心
Zuul:服務網關
Ribbon:負載均衡
Feign:服務調用
Hystrix:熔斷器
入門代碼
前提:父工程為springboot,并且進行了jar包的版本管理
Eureka:注冊中心,實現服務的注冊和發現功能
1、導入坐標
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.2</version> </dependency> </dependencies>
2、創建啟動類
@SpringBootApplication @EnableEurekaServer public class EurekaServer { public static void main(String[] args) { SpringApplication.run(EurekaServer.class); } }
3、添加配置文件
server: port: 8084 spring: application: name: eureka-server eureka: client: service-url: defaultZone: http://127.0.0.1:8084/eureka
Ribbon:負載均衡
Hystrix:熔斷器
Feign:服務調用
Zuul:服務網關
示例代碼:
1、導入坐標
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies>
2、編寫啟動類
@EnableCircuitBreaker @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients /* @SpringCloudApplication */ public class ConsumerApplication { @Bean @LoadBalanced public RestTemplate restTemplate (){ return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class); } }
3、實現代碼
@RestController @RequestMapping("consumer") public class ConsumerController { @Autowired private RestTemplate restTemplate; @Autowired private LoadBalancerClient client; @GetMapping("{id}") @HystrixCommand(fallbackMethod = "queryByIdFallback") public Account queryById(@PathVariable ("id") Integer id){ //List<ServiceInstance> instances = discoveryClient.getInstances("user_service"); //ServiceInstance instanceInfo = instances.get(0); ServiceInstance instance = client.choose("user_service"); String url = "http://"+instance.getHost()+":"+instance.getPort()+"/account/"+id; System.out.println(url); Account account = restTemplate.getForObject(url,Account.class); return account; } public Account queryByIdFallback(Integer id ){ return null; } }
到此,關于“springCloud的使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。