springCloud - 第3篇 - 消費者調用服務 ( RestTemplate + Ribbon )

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

一、新建 ribbon 工程:

1. file - new - module?

2. spring Initializr - module SDK 選擇自己的 JDK ,其余的可以不用填寫,next。

3. 填寫工程相關信息:包名、工程名等,next。

4. spring cloud discovery - 勾選 eureka discover client,next。

或? spring cloud routing?- 勾選 ribbon,next。(此步這 2 種都可)

5. 工程名,代碼存放位置等,finish 。

6. 工程結構如下:

7.?pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.ribbon</groupId><artifactId>service-ribbon</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>service-ribbon</name><description>服務消費 ribbon 方式</description><parent><groupId>com.base</groupId><artifactId>base-config</artifactId><version>0.0.1-SNAPSHOT</version></parent><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency></dependencies><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>

8. 在工程啟動類上加注解:@EnableDiscoveryClient??。

關于 2 個注解的區別見文章:springcloud 注解 @EnableDiscoveryClient 與 @EnableEurekaClient 的區別

package com.ribbon.serviceribbon;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;// 標明自已為服務
@EnableDiscoveryClient@SpringBootApplication
public class ServiceRibbonApplication {public static void main(String[] args) {SpringApplication.run(ServiceRibbonApplication.class, args);}/*** 向 ioc 注入 bean : restTemplate;* 注解 @LoadBalanced :此 bean 開啟負載均衡。* @return*/@Bean@LoadBalancedRestTemplate restTemplate() {return new RestTemplate();}
}

實現對于生產者服務的調用:

SeeParamService

package com.ribbon.serviceribbon;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;/*** @author yujiang* @description* @date 2019/7/22 11:45*/
@Service
public class SeeParamService {@AutowiredRestTemplate restTemplate;public String seeService(String param) {return restTemplate.getForObject("http://see-param/seeParam?param=" + param, String.class);}}

?SeeParamController:

package com.ribbon.serviceribbon;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;/*** /**** @author yujiang* @description* @date 2019/7/22 13:27*/
@RestController
public class SeeParamController {@AutowiredSeeParamService seeParamService;@RequestMapping(value = "/seeParam")public String see(@RequestParam String param) {return seeParamService.seeService(param);}
}

9. 配置文件相關設置:

# 注冊中心 - 端口: 1234、工程名: eureka (見 eureka 工程中配置)。
eureka.client.serviceUrl.defaultZone= http://localhost:1234/eureka/# 端口
server.port= 8701# 工程名
spring.application.name= ribbon

10.啟動工程:

?

11. 瀏覽器訪問:??http://localhost:8701/seeParam?param=參數啊 。刷新多次請求,得到不同端口服返回的結果 。

?

12. 從注冊中心可知,當前注冊了4 個服務,訪問注冊中心:http://localhost:1234/

?

13. 不斷刷新 ribbon 工程訪問地址,可見 8801、8802、8803 都有請求到。圖見第?11 點。

說明 負載均衡 已實現,消費者(服務請求方應用)請求到了不同的生產者(服務提供方應用)。

14.總結:

此時 整個工程體系為:

1個注冊中心:eureka 工程,端口:1234 。

3個生產者 see-param?,分別占用端口:8801、8802、8803 ,三者都向 eureka? 注冊,暴露自已提供的服務。

1個消費者 ribbon 工程,端口:8701 。向?eureka 注冊 ,訂閱自已所需要的服務。

ribbon 有作負載均衡,故 在調用生產者服務時,可輪流請求到不同的生產者服務。

------------------------------------------------------------------------------

遇到 問題1:

解決方法見文章:解決:There was an unexpected error (type=Internal Server Error,..). No instances available for XXX

?

遇到 問題2 :

解決方法見文章:解決:Whitelabel Error Page This application has no explicit mapping for /error...UnknownHostException

------------------------------------------------------------------------

下一篇:springCloud - 第4篇 - 消費者調用服務 ( Feign )

源碼見:https://gitee.com/FJ_WoMenDeShiJie/springcloud-ribbon

--------------------------------------------------------------

PS:這個系列不定時更新,只是個人的學習分享,

內容全程參考書目:

《Spring Cloud 與 Docker 微服務架構空實戰?》、

《Spring Cloud 微服務實戰》及此書作者博客:http://blog.didispace.com/spring-cloud-learning/

《深入理解 Spring Cloud 與微服務構建》及此書作者博客:https://blog.csdn.net/forezp/article/details/70148833
--------------------------------------------------------------

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447622.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447622.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447622.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

延長汽車使用壽命,拋棄六大用車壞習慣

汽車使用越來越普及&#xff0c;因為用車習慣問題導致汽車壽命減短&#xff0c;因錯誤用車習慣導致傷車、損車的例子比比皆是。而用車習慣得當與否&#xff0c;直接關系到汽車的使用壽命。例如發動機&#xff0c;如果保養得當&#xff0c;開50萬~60萬公里都沒問題。汽車使用越來…

解決:Whitelabel Error Page This application has no explicit mapping for /error...UnknownHostException

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 我的情況 &#xff1a; springcloud 實踐&#xff0c;啟動 ribbon 工程后&#xff0c;請求接口報錯&#xff1a; Whitelabel Error…

springCloud - 第4篇 - 消費者調用服務 ( Feign )

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、新建 ribbon 工程&#xff1a; 1. file - new - module 2. spring Initializr - module SDK 選擇自己的 JDK &#xff0c;其余的可…

相信什么,生命就走向什么

一、因果定律&#xff1a;生命的成熟&#xff0c;體現在一個人的行為是否越來越遵循因果定律。 世界上沒有一件事是偶然發生的&#xff0c;每一件事的發生必有其原因。這是宇宙的最根本定律。人的命運當然也遵循這個定律。認同因果定律的不僅是佛教&#xff0c;還有基督教和印…

使用 idea 創建第一個 springboot 項目

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 如今springboot越來越火&#xff0c;越來越多的公司選擇使用springboot作為項目的開發框架&#xff0c;其設計目的就是用來簡化spring項…

自信不疑的人不會做的15件事

自信不疑的人相信自己的能力。如果自己都不信任自己&#xff0c;那么別人怎么相信你&#xff01;自信不疑的人相信自己的能力。如果自己都不信任自己&#xff0c;那么 別人怎么相信你&#xff01;想要昂首闊步、增加自信&#xff0c;請留意自信不疑的人不會做的15件事情。 1.不…

maven多模塊使用( pom.xml 中 <modules> 實現子父模塊組合)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一個多模塊項目通過一個父POM 引用一個或多個子模塊來定義。父項目&#xff0c;通過以下配置&#xff0c;將子項目關聯。 <packaging…

堅持步行的驚人效果,網上被瘋狂轉載!

俗話說&#xff0c;人老腿先老。由于人體2/3的肌肉集中在下半身&#xff0c;所以六十多歲的人可以有年輕人七成的握力和臂力&#xff0c;但下半身力量卻只剩下四成。不過&#xff0c;大家也不必擔心。最近&#xff0c;包括以色列、美國在內的科學家們發現&#xff0c;溫和地健步…

springCloud - 第5篇 - 斷路器 Hystrix ( Feign 、Ribbon )

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、為什么要有熔斷 在微服務架構中&#xff0c;根據業務來拆分成一個個的服務&#xff0c;服務與服務之間可以相互調用&#xff08;RP…

男人七個健康“保鮮劑”

導讀&#xff1a;男人很累&#xff0c;要讓女人開心&#xff0c;要承擔生活和工作中的巨大壓力&#xff0c;還要保持姿容完美。美國男性健康網近日體諒地為男人定制了一份全面的套餐&#xff0c;幫助他們用最省時、最簡單的辦法不被勞累“氧化”&#xff0c;為健康“保鮮”。 1…

springCloud - 第6篇 - 網關的實現:ZUUL

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 在Spring Cloud 微服務系統中&#xff0c;一種常見的負載均衡方式是&#xff0c;客戶端的請求首先經過負載均衡&#xff08;zuul、Ngnix…

亞特蘭大峰會精彩看點:軟件吞噬世界,OpenStack是變革核心

摘要&#xff1a;5月12日早9點&#xff0c;OpenStack Atlanta峰會在超過90家贊助廠商和4500名參會者的陪伴下拉開了序幕。Jonathan Bryce特別提出了Superuser和Marketplace兩個新概念&#xff0c;軟件正在吞噬整個世界&#xff0c;OpenStack是這場變革的核心。 第一天精彩看點…

Git 查看并修改 name 和 email

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 顯示name的方法&#xff1a; git config user.name git config --list 或者查看~/.gitconfig 文件。 改名字&#xff1a; # --global…

缺乏運動 七種病早早光臨

我們年輕&#xff0c;我們不怕病痛&#xff0c;但事實并非如此。常常聽著老一輩的念叨&#xff0c;說年輕人要動動&#xff0c;老了才不會這痛那痛的&#xff0c;覺得自己的身體“強大無比”&#xff0c;不會有疾病困擾&#xff0c;只是因為你不到那個年齡你理解不了。 當我們還…

解決: Gitee 自已提交的代碼提交人頭像為他人、碼云上獨自開發的項目顯示為 2 個開發者

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 我的情況 &#xff1a; 項目一直只有我一個開發者&#xff0c;卻莫名的出來了一個完全不認識的開發者&#xff0c;我新建后 push 的…

為什么有些語言會比別的快?

摘要&#xff1a;為什么有些語言比別的快&#xff1a;JIT與字節碼的使用&#xff0c;帶來了Java和C#這樣介于前兩者之間的中間選擇&#xff1b;編譯型語言比解釋型快&#xff0c;引入的間接層越多&#xff0c;速度越慢&#xff1b;語言設施上的投入力度&#xff1b;語言本身的設…

Docker logs 查看實時日志(日志最后的N行、某刻后日志)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 docker logs &#xff1a; docker logs -f -t --since"2017-05-31" --tail10 edu_web_1 edu_web_1 為容器名&#xff0c;也可…

研發團隊平穩度過“從小到大”并非易事

摘要&#xff1a;創業團隊在經歷初期的艱難發展階段后&#xff0c;團隊的擴大也帶來一系列管理上的混亂&#xff0c;CTO俱樂部會員、呱呱視頻社區研發總監王國良分享了自己關于創業團隊發展的思考&#xff0c;他認為研發團隊想要平穩度過“從大到小”并非易事。 創過業的人都知…

解決:idea - maven project 中 jar 報紅線

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 如圖&#xff1a; 2. 找到報紅線的工程&#xff0c;執行 mvn clean后&#xff0c;再 mvn install 。這樣會從私服重新拉取 jar 。 …

云計算三大主流陣營的競爭與合作

摘要&#xff1a;目前&#xff0c;以AWS等為代表的互聯網陣營、以IBM、HP為代表的IT陣營以及以AT&T為代表的電信運營商陣營在云計算領域展開競爭與合作&#xff0c;但是未來三大陣營的競爭和合作將更加復雜&#xff0c;IaaS、PaaS和SaaS的界限也逐步消弭。 【編者按】云計…