日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚洲精品喷潮一区二区三区 | 日本人六九视频 | 久9精品| 国产日韩欧美日韩大片 | 在线高清av| 日韩少妇毛片 | 日批视频在线 | 国产一级特黄a高潮片 | 亚洲综合激情另类小说区 | 久久无码人妻精品一区二区三区 | 中文字幕www | 亚洲一区二区三区四 | 午夜激情电影在线观看 | 国产精品aaa | 中国美女一级片 | 欧美激情在线播放 | 国产精品乱码妇女bbbb | 免费av一区二区三区 | av制服丝袜在线 | 日韩精品一区二区三区在线 | 欧美日本三级 | 欧美日本一二三区 | 欧美wwwxxxx| 性网爆门事件集合av | 国产精品一区二区av日韩在线 | 在线看黄色的网站 | 亚洲第一黄网 | 韩国日本在线观看 | 亚洲福利视频网站 | 一级片a级片 | 免费看a毛片 | 男人天堂影院 | 91精品国产综合久久福利 | 欧美极品少妇xxxxⅹ裸体艺术 | 欧美日韩精品免费 | 另类av在线| 深夜福利一区 | 蜜臀网在线 | 日韩三级大片 | 亚洲aav | 成人深夜福利在线观看 | av免播放器在线观看 | 青娱乐最新地址 | 妖精视频一区二区 | 午夜精品视频一区二区三区在线看 | 色姑娘综合 | 国产日韩精品一区二区三区 | 99热18| 小俊大肉大捧一进一出好爽 | 星铁乱淫h侵犯h文 | 成人图片小说 | 国产精品第3页 | 午夜久久网站 | 人成在线视频 | 中国黄色网址 | 日韩国产欧美精品 | 日韩欧美一区在线 | 午夜资源 | 美国黄色网址 | 日韩国产三级 | 青青青青在线 | 色av一区二区三区 | 亚洲av无码专区国产乱码不卡 | 综合国产一区 | 香蕉尹人 | 精品视频在线播放 | 国产又粗又猛又爽 | 伊人91视频| 欧美wwwxxxx | 黑丝久久 | 毛片看看 | 午夜在线一区二区三区 | 爱射网| 欧美黑人性生活 | 国产精品高清无码 | 黄色工厂这里只有精品 | av在线色| 久久久96人妻无码精品 | 欧美区在线 | 国产高中女学生第一次 | 亚洲图片视频小说 | 天天爽夜夜春 | 天啪| 精品久久久久久久久久久久久久久久久久 | 欧美大片在线看免费观看 | 久久精品av| 久久久久久av无码免费网站下载 | 亚洲乱码国产乱码精品精 | 欧美人与动牲交xxxxbbbb | 亚洲区一区 | 中文字幕在线观看亚洲 | 国产精品看片 | 午夜痒痒网 | 久久久精品美女 | 欧美日本韩国一区二区 | 日韩中文娱乐网 | 一区二区三区爱爱 | 日本在线网址 | 麻豆成人av|