新聞中心
分布式
在大型開發(fā)項目中通常使用分布式服務來根據(jù)項目中不同的功能劃分為幾個不通的模塊。

泰和網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,泰和網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為泰和上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的泰和做網(wǎng)站的公司定做!
比如在一個商城系統(tǒng)中,通常會把用戶服務、下單服務、商品推薦服務分散到幾個模塊中,如果在下單服務中需要獲取用戶的信息,這時候就在代碼內(nèi)部調(diào)用用戶服務的接口即可。這樣一個過程就是分布式的基本概念。
Spring Cloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā),如服務發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署。Spring Cloud并沒有重復制造輪子,它只是將各家公司開發(fā)的比較成熟、經(jīng)得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。
--以上內(nèi)容來自百度百科。
圖片
來自官網(wǎng)列舉的主要項目
所以,Spring Cloud是一款主流的分布式服務框架,提供了服務注冊與調(diào)用,統(tǒng)一配置管理,統(tǒng)一網(wǎng)關路由,服務鏈路監(jiān)控等功能。并且在遠程調(diào)用是支持Feign(HTTP)協(xié)議。
服務遠程調(diào)用
3.1 創(chuàng)建兩個項目
創(chuàng)建兩個項目模擬分布式的場景,分別是userService和orderService,這兩個服務對應的數(shù)據(jù)庫不在同一個庫中,在userService項目中有一個接口是根據(jù)user表的ID查詢user對象;
同樣的,orderService項目中有一個接口是根據(jù)order表的ID查詢order信息,在一條信息中包含了單價,數(shù)量,總價和用戶的ID。
這兩個個項目布在了同一個大的項目中。現(xiàn)在有一個功能需求是通過使用orderService的接口查詢order信息并同時獲得這個訂單對應的用戶信息。
圖片
3.2 遠程調(diào)用
首先需要創(chuàng)建一個RestTemplate對象,這個對象功能能簡單,就是用來發(fā)送HTTP請求,所以可以在項目的配置類中創(chuàng)建這么一個對象,然后在Controller層中注入。
圖片
圖片
這樣就完成了一次遠程調(diào)用了。
使用Postman測試一下,理論上是要返回一個response對象,response對象包含了user對象和order對象。
圖片
Eureka服務搭建
在上面的遠程調(diào)用的例子中,有許多的不足,比如訪問的url信息是寫死在代碼中的,后期部署的時候要再專門修改這樣是不現(xiàn)實的。
Eureka服務發(fā)現(xiàn)就相當于是一個專門獲取項目中所有接口的程序。所以需要先創(chuàng)建一個Spring boot項目,然后把這個項目當作Eureka的server。
4.1 首先在Eureka_Server的Maven中導入依賴
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
4.2 接著在啟動類添加@EnableEurekaServer注解
圖片
4.3 在配置文件中配置Eureka服務的端口和應用名稱
圖片
驗證是否成功只需要在瀏覽器上輸入設置的網(wǎng)址,看能否進入頁面即可。
圖片
Eureka服務注冊
5.1 在orderservice和userservice項目中分別引入Eureka依賴信息
注:這里導入的是client依賴。
圖片
5.2 在userservice和orderservice配置Eureka的配置信息
注:與4.3的樣式一致。
圖片
5.3 訪問eureka地址查看這倆個新注冊的服務
圖片
可以發(fā)現(xiàn)服務都注冊在eureka上了。
Eureka服務發(fā)現(xiàn)
6.1 把消費者的調(diào)用鏈接中的ip和端口信息換成注冊在Eureka的服務名
圖片
6.2 在消費者的配置類的RestTemplate上添加@LoadBalanced注解
注:這里的消費者當然是orderservice。
圖片
6.3 再測試一次程序
圖片
可見是成功調(diào)用了userservice的接口。
當前標題:實現(xiàn)Eureka服務注冊和服務發(fā)現(xiàn),你學會了嗎?
URL網(wǎng)址:http://m.fisionsoft.com.cn/article/dpchjhi.html


咨詢
建站咨詢
