成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

一起學(xué)習(xí)使用Spring Cloud Netflix之Ribbon

nidaye / 2321人閱讀

摘要:本例中介紹如何使用來完成服務(wù)調(diào)用并實現(xiàn)負(fù)載均衡。即,對于注冊中心而言,生產(chǎn)者和調(diào)用者都是端。文件配置如下在文件中,我們將應(yīng)用命名為,端口為,表示注冊中心地址。

前言

Ribbon是Spring Cloud體系中完成負(fù)載均衡的重要組件。Spring Cloud體系中有兩種完成服務(wù)調(diào)用的組件,一種是Ribbon+RestTemplate,另一種Feign。Feign默認(rèn)使用的也是Ribbon組件,將服務(wù)間的調(diào)用又包裝了一層,像調(diào)用方法一樣的來調(diào)用遠(yuǎn)程服務(wù)。本例中介紹如何使用Ribbon+RestTemplate來完成服務(wù)調(diào)用并實現(xiàn)負(fù)載均衡。

本文來源于我的技術(shù)博客:http://51think.net

一、創(chuàng)建服務(wù)調(diào)用者

在Eureka的博客中,我們創(chuàng)建了服務(wù)注冊中心應(yīng)用spring-cloud-eureka,創(chuàng)建了服務(wù)生成者spring-cloud-eureka-myservice。這次我們將創(chuàng)建一個服務(wù)調(diào)用者spring-cloud-ribbon-client。
1、POM文件如下



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.6.RELEASE
         
    
    com.example
    spring-cloud-ribbon-client
    0.0.1-SNAPSHOT
    spring-cloud-ribbon-client
    Demo project for Spring Boot

    
        1.8
        Greenwich.SR2
    

    
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


從POM文件中可以看出核心組件是spring-cloud-starter-netflix-eureka-client,這個組件在服務(wù)生產(chǎn)者應(yīng)用spring-cloud-eureka-service中也在使用。即,對于Eureka注冊中心而言,生產(chǎn)者和調(diào)用者都是client端。spring-boot-starter-web用于web交互,稍后我們將通過瀏覽器來呈現(xiàn)一個helloWorld的調(diào)用效果。
2、yml文件配置如下

 eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8010/eureka/
server:
  port: 8020
spring:
  application:
    name: ribbonClient

在yml文件中,我們將應(yīng)用命名為ribbonClient,端口為8020,defaultZone表示Eureka注冊中心地址。

3、申明Eureka client端
在springboot啟動類中,添加@EnableEurekaClient注解,以申明此應(yīng)用是Eureka的一個客戶端。
@EnableEurekaClient
@SpringBootApplication
public class RibbonClientApplication {

public static void main(String[] args) {
    SpringApplication.run(RibbonClientApplication.class, args);
}

}

4、將負(fù)載均衡的bean注入到容器中
RestTemplate可以進(jìn)行遠(yuǎn)程調(diào)用,@LoadBalanced注解表明這個bean具備負(fù)載均衡的功能,默認(rèn)使用的是輪詢機(jī)制。

@Configuration
public class ConfigProvider {
    @Bean
    @LoadBalanced
    RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

5、創(chuàng)建service
使用注入的restTemplate來實現(xiàn)遠(yuǎn)程調(diào)用。

@Service
public class SayHelloService {
    @Autowired
    RestTemplate restTemplate;
    public  String sayHello(String say){
        return restTemplate.getForObject("http://myservice/sayHello?say="+say,String.class);
    }
}

6、創(chuàng)建controller

@RestController
public class SayHelloController {
    @Autowired
    SayHelloService sayHelloService;
    @RequestMapping ("/sayHello")
    public String sayHello(@RequestParam String say){
        return sayHelloService.sayHello(say);

    }
}
二、生產(chǎn)者應(yīng)用提供服務(wù)

在spring-cloud-eureka-myservice應(yīng)用中,添加controller,提供訪問服務(wù):

@RestController
public class HelloServerController {
    @Value("${server.port}")
    String port;
    @RequestMapping("/sayHello")
    public String hello(@RequestParam String say){
            return say+", i com from the server "+port;

    }
}

啟動生產(chǎn)者應(yīng)用spring-cloud-eureka-myservice,然后變更端口,再啟動一次,這樣生產(chǎn)者就變成雙節(jié)點了,為后面的負(fù)載均衡演示提供條件。

三、啟動服務(wù)調(diào)用者spring-cloud-ribbon-client

啟動完成之后,在Eureka面板中,可以看到如下信息:

從圖中可以看到兩行數(shù)據(jù),分別代表兩個應(yīng)用,myservice應(yīng)用存在兩個節(jié)點,ribbonclient應(yīng)用存在一個節(jié)點。如果看不到ribbonclient這一行,那要檢查一下spring-cloud-ribbon-client應(yīng)用是否有問題。

四、瀏覽器訪問

在瀏覽器訪問http://localhost:8020/sayHello?say=helloworld,可以看到如下展示

多次訪問時會發(fā)現(xiàn)端口在交替變化,說明我們實現(xiàn)了負(fù)載均衡。

源碼地址:https://github.com/huangyubia...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75677.html

相關(guān)文章

  • 一起學(xué)習(xí)使用Spring Cloud NetflixZuul

    摘要:前言在體系中扮演著統(tǒng)一網(wǎng)關(guān)的角色,負(fù)責(zé)與外部交互。與結(jié)合使用,可以根據(jù)服務(wù)名來訪問后端的服務(wù),對于而言,也是一個。這段代碼表示,如果請求中沒有信息,就會報錯。 前言 Zuul在Spring Cloud 體系中扮演著統(tǒng)一網(wǎng)關(guān)的角色,負(fù)責(zé)與外部交互。用戶可以通過不同的URL特征來訪問不同的后端服務(wù),類似于Nginx代理的效果。Zuul與Eureka結(jié)合使用,可以根據(jù)服務(wù)名來訪問后端的服務(wù),...

    FullStackDeveloper 評論0 收藏0
  • Spring Cloud 參考文檔(客戶端負(fù)載均衡器:Ribbon

    摘要:客戶端負(fù)載均衡器是一個客戶端負(fù)載均衡器,可以讓你對和客戶端的行為進(jìn)行大量控制,已經(jīng)使用了,因此,如果你使用,此部分也適用。 客戶端負(fù)載均衡器:Ribbon Ribbon是一個客戶端負(fù)載均衡器,可以讓你對HTTP和TCP客戶端的行為進(jìn)行大量控制,F(xiàn)eign已經(jīng)使用了Ribbon,因此,如果你使用@FeignClient,此部分也適用。 Ribbon中的一個核心概念是命名客戶端,每個負(fù)載均...

    Songlcy 評論0 收藏0
  • 8、服務(wù)發(fā)現(xiàn)&服務(wù)消費者Feign

    摘要:公眾號樂園的中提供了兩個組件實現(xiàn)軟負(fù)載均衡調(diào)用,分別是和。是基于和的客戶端負(fù)載工具,它是基于實現(xiàn)的,它可以在客戶端配置服務(wù)端列表,然后輪詢請求以實現(xiàn)均衡負(fù)載。 公眾號:java樂園 spring cloud的Netflix中提供了兩個組件實現(xiàn)軟負(fù)載均衡調(diào)用,分別是Ribbon和Feign。上一篇和大家一起學(xué)習(xí)了Ribbon。Ribbon :Spring Cloud Ribbon是基于H...

    lpjustdoit 評論0 收藏0
  • Spring Cloud 快速入門

    摘要:服務(wù)注冊中心一個服務(wù)注冊中心,所有的服務(wù)都在注冊中心注冊,負(fù)載均衡也是通過在注冊中心注冊的服務(wù)來使用一定策略來實現(xiàn)。在客戶端實現(xiàn)了負(fù)載均衡。 文章參考于史上最簡單的 SpringCloud 教程 | 終章 Spring Cloud 是一個微服務(wù)框架,與 Spring Boot 結(jié)合,開發(fā)簡單。將一個大工程項目,分成多個小 web 服務(wù)工程,可以分別獨立擴(kuò)展,又可以共同合作。 環(huán)境 ...

    fuyi501 評論0 收藏0
  • Spring Cloud實戰(zhàn)(三)-Spring Cloud Netflix Ribbon

    摘要:概要什么是實戰(zhàn)整合實現(xiàn)負(fù)載均衡是什么是一個客戶端負(fù)載均衡的組件什么是負(fù)載均衡負(fù)載均衡就是分發(fā)請求流量到不同的服務(wù)器目前的實現(xiàn)有軟件和硬件負(fù)載均衡分為兩種服務(wù)器端負(fù)載均衡如上圖所示服務(wù)器端負(fù)載均衡是對客戶透明的用戶請求到服務(wù)器真正的服務(wù)器是由 概要 什么是Spring Cloud Netflix Ribbon? 實戰(zhàn):整合Ribbon實現(xiàn)負(fù)載均衡 Spring Cloud Netfl...

    wangbinke 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<