您好,登錄后才能下訂單哦!
隨著服務化編程思想的不斷流行,越來越多的公司、企業、開發人員使用微服務技術。目前流行的兩大微服務技術:dubbo\SpringCloud。這篇文章不會去對dubbo和SpringCloud進行對比,這篇文章我主要想介紹SpringCloud全家桶中的netflix組件,結合實際案例代碼進行說明。也對我工作中使用SpringCloud進行總結。
netflix是收費視頻網站公司的名字,全球十大視頻網站之一,如果想了解的可自行Google。Spring Cloud Netflix是SpringCloud中的一個組件庫,Spring Cloud Netflix通過自動配置和綁定到Spring環境和其他Spring編程模型習慣用法,為Spring Boot應用程序提供Netflix OSS集成。通過一些簡單的注解,可以快速啟用和配置應用程序內的常見模式,Netflix組件構建大型分布式系統。提供包括服務發現(Eureka)、熔斷器(Hystrix)、智能路由(Zuul)和客戶端負載均衡器(Ribbon)。
服務發現(Eureka)是netflix的核心組件,它負責服務注冊,管理服務列表。下面這幅圖解釋Eureka的職責:
所有服務都需要在Eureka-Server上進行注冊登記,訂單服務、產品服務、支付服務、用戶服務都是Eureka管理的服務,需要它們進行上報,上報的信息包括ServiceId,節點地址,服務接口等,那么注冊中心就會通過心跳檢查去維護這份服務列表。接下來我們編寫一個Eureka-Server、Product-Service模擬這種服務發現。
開發環境與工具:IDEA+JDK8+SpringBoot2.1.0
到這里就把項目創建起來了,但這個時候還只是一個SpringBoot的項目,需要開啟EurekaServer注解。
同時我們把application.yml配置一下:
我們啟動該項目,用瀏覽器打開管理臺。
到這里,我們就已經把EurekaServer寫完了,那么我們接下來就是寫Product-Service.
在寫之前我們先定一下提供的接口,list接口提供所以產品信息,find接口根據id查找商品信息。Product-Service,我們按照常規的模式進行編寫分Controller、Service、Domain,過程如下:
商品domain類,包括id,名稱,價格,庫存。
到這里就已經寫完了Product-Service.我們還需要配置application.yml,讓這個服務自動注冊到Eureka-Server去。
我們啟動該Product-service。我們一共啟動Product-Service的三個實例8771\8772\8773,然后我們進入到Eureka-Server查看。
這個時候我們就看到,Product-Service服務已經自動注冊到這里來了,一共有三個節點,端口分別是8771,8772,8773.
接口也都可以使用。
我們可以停掉其中一個節點:8773,再去看下EurekaServer.
我們發現eurekaserver上8773的product-service顯示DOWN的紅色字體,說明它是可以檢查到服務的狀態的,我們在此啟動,你會發現down消失了。
備注:@EnableEurekaClient這個注解可以不用寫的,因為我們SPRING INITIALIZR構建的項目IDE已經幫我們做好了很多工作,映入spring-cloud-starter-netflix-eureka-client,它就會自動去檢查application.yml,我們在配置文件中已經配置了Eureka客戶端相應的信息,那么這個應用就自動加上了@EnableEurekaClient。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。