日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第二篇 服务消费者(rest ribbon)(Finchley版本)V2.0_dev

發布時間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第二篇 服务消费者(rest ribbon)(Finchley版本)V2.0_dev 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

在微服務架構中,業務都會被拆分成一個獨立的服務,服務與服務的通訊是基于http restful的。

Spring cloud有兩種服務調用方式:

第一種ribbon+restTemplate
第二種feign

一種是ribbon+restTemplate
另一種是feign。在這一篇文章首先講解下基于ribbon+rest。

一、ribbon簡介

ribbon是一個負載均衡客戶端,可以很好的控制htt和tcp的一些行為。Feign默認集成了ribbon

二、準備工作

這一篇文章基于上一篇文章的工程

  • 啟動eureka-server 工程;
  • 啟動service-hi工程,它的端口為8762;
  • 將service-hi的配置文件的端口改為8763,并啟動;
  • 這時你會發現:service-hi在eureka-server注冊了2個實例,這就相當于一個小的集群。

    三、建一個服務消費者

    • 重新新建一個spring-boot工程,取名為:service-ribbon;
      在它的pom.xml繼承了父pom文件,并引入了以下依賴:
    <?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><parent><groupId>com.gblfy</groupId><artifactId>sc-f-chapter2</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>com.gblfy</groupId><artifactId>service-ribbon</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>service-ribbon</name><description>Demo project for Spring Boot</description><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></dependencies></project>

    在工程的配置文件指定:

    服務的注冊中心地址http://localhost:8761/eureka/
    程序名稱service-ribbon
    程序端口8764
    • 服務的注冊中心地址:http://localhost:8761/eureka/,
    • 程序名稱為 service-ribbon,
    • 程序端口為8764
    • 配置文件application.yml如下:
    eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/ server:port: 8764 spring:application:name: service-ribbon
    • 在工程的啟動類中,通過@EnableDiscoveryClient向服務中心注冊;
    • 并且向程序的ioc注入一個bean: restTemplate;
    • 并通過@LoadBalanced注解表明這個restRemplate開啟負載均衡的功能
    @SpringBootApplication @EnableDiscoveryClient @EnableEurekaClient public class ServiceRibbonApplication {public static void main(String[] args) {SpringApplication.run(ServiceRibbonApplication.class, args);}@Bean@LoadBalancedRestTemplate restTemplate(){return new RestTemplate();} }

    四、 在service-ribbon應用中

    • 新建service包并創建一個測試接口類HelloService
    • 在新建service包下面新建impl包,并創建一個測試實現類HelloServiceImpl
    • 通過之前注入ioc容器的restTemplate來消費service-hi服務的“/hello”接口;
    • 在這里我們直接用的程序名替代了具體的url地址,在ribbon中它會根據服務名來選擇具體的服務實例,根據服務實例在請求的時候會用具體的url替換掉服務名

    代碼如下:
    測試接口類HelloService

    public interface HelloService {String hiService(String myName); }

    測試實現類HelloServiceImpl

    @Service public class HelloServiceImpl implements HelloService {@Autowiredprivate RestTemplate restTemplate;@Overridepublic String hiService(String myName) {return restTemplate.getForObject("http://SERVICE-HI//hello?myName="+myName,String.class);} }
    • 在service-ribbon應用中新建controller包結構,并創建HelloControler前前端測試類
      在controller中用調用HelloService 的方法,代碼如下:
    @RestController public class HelloControler {@Autowiredprivate HelloService helloService;@GetMapping("/hello")public String hi(@RequestParam String name){return helloService.hiService(name);} }

    五、啟動service-ribbon工程

    • 訪問Eureka注冊中心地址:http://localhost:8761

    • 已成功注冊到注冊中心上了

    六、在瀏覽器上多次訪問

    http://localhost:8764/hi?name=gblfy,
    瀏覽器交替顯示:

    hello,gblfy,我的應用名稱是:service-hi,端口是:8762 hello,gblfy,我的應用名稱是:service-hi,端口是:8763


    • 負載均衡
      這說明當我們通過調用
      restTemplate.getForObject(“http://SERVICE-HI/hi?name=”+name,String.class)方法時,已經做了負載均衡,訪問了不同的端口的服務實例。

    七、此時的架構

    • 一個服務注冊中心,eureka server,端口為8761
    • service-hi工程跑了兩個實例,端口分別為8762,8763,分別向服務注冊中心注冊
    • sercvice-ribbon端口為8764,向服務注冊中心注冊
    • 當sercvice-ribbon通過restTemplate調用service-hi的hi接口時,因為用ribbon進行了負載均衡,會輪流的調用service-hi:8762和8763 兩個端口的hi接口

    本文源碼下載:

    dev分支(最新企業實戰版本):
    https://github.com/gb-heima/springcloud-practical-column/tree/dev/sc-f-chapter2

    master分支(入門版本):
    https://github.com/gb-heima/springcloud-practical-column/tree/master/sc-f-chapter2

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的第二篇 服务消费者(rest ribbon)(Finchley版本)V2.0_dev的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 性一交一乱一伧国产女士spa | 久久久久久爱 | www夜片内射视频日韩精品成人 | 欧美精品一级 | 玖玖网 | 深喉口爆一区二区三区 | 另类小说一区二区 | 中文亚洲av片在线观看 | 欧美精品亚洲一区 | 亚洲成年人 | 国产干b| 黄色一级片在线免费观看 | yy4138理论片动漫理论片 | 亚洲a精品 | 密臀久久 | 三级小说视频 | 亚洲乱码国产乱码精品精大量 | 夜夜嗨影院 | 蜜桃精品噜噜噜成人av | 黄色av网站在线播放 | 国产精品夜夜爽张柏芝 | 亚洲第一区视频 | 麻豆成人91精品二区三区 | 亚洲最大视频网站 | 夜夜狠 | 美女激情网 | 亚洲欧美日韩一区在线观看 | 亚洲天堂成人 | 四虎影视免费看 | 色桃av | 两口子交换真实刺激高潮 | 无码人妻丰满熟妇区五十路百度 | 国产香蕉精品 | 国产操片 | 精品人妻伦一二三区免费 | 蜜臀久久99精品久久一区二区 | av在线播放国产 | 电影一区二区三区 | av黄色av| 午夜av影院 | free欧美性69护士呻吟 | 久久久久99人妻一区二区三区 | 蜜臀aⅴ国产精品久久久国产老师 | 99国产精品一区 | 亚洲天堂最新 | 色婷婷精品国产一区二区三区 | 欧美激情四区 | 亚洲观看黄色网 | 亚色一区| 亚洲久久视频 | 欲色av| 国产精品一区二区自拍 | 午夜免费福利小视频 | 久久久久夜夜夜精品国产 | 老司机福利av | www.jizzjizz.com | 亚洲精品7777 | 天天草天天操 | 狠狠躁日日躁夜夜躁 | 两个人看的www视频免费完整版 | 蜜桃视频成人在线观看 | 欧美午夜在线 | 亚洲国产剧情在线观看 | 男男上床视频 | 亚洲欧美色图片 | 国产91综合| 五月婷婷综合在线观看 | 一个人看的www日本高清视频 | 日韩在观看线 | 嫩模啪啪 | 国产激情a | 波多av在线 | 国产av无码专区亚洲av麻豆 | 深夜福利网站在线观看 | 肥熟女一区二区三肥熟女 | 婷婷四房综合激情五月 | 北岛玲一区二区 | 久久精品久久久久久 | 久久这里有精品视频 | 懂色av蜜臀av粉嫩av | 51精品国产人成在线观看 | 青青操视频在线观看 | 久久久久久一区二区三区 | 电影寂寞少女免费观看 | 日韩三区在线观看 | 青草青在线 | 久久久久久久一 | 中日韩欧美在线观看 | 久久久久九九九九 | 日韩一区电影 | 国产日韩欧美精品在线观看 | 国产精品久久久久久久久久辛辛 | 日本免费不卡 | 91大神在线免费观看 | 一级黄色大片免费观看 | 黄色3级视频 | 91在线网站 | 永久在线 | 91精品国产一区二区三竹菊影视 |