国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

nidaye / 2319人閱讀

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

前言

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

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

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

在Eureka的博客中,我們創(chuàng)建了服務(wù)注冊(cè)中心應(yīng)用spring-cloud-eureka,創(chuàng)建了服務(wù)生成者spring-cloud-eureka-myservice。這次我們將創(chuàng)建一個(gè)服務(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,這個(gè)組件在服務(wù)生產(chǎn)者應(yīng)用spring-cloud-eureka-service中也在使用。即,對(duì)于Eureka注冊(cè)中心而言,生產(chǎn)者和調(diào)用者都是client端。spring-boot-starter-web用于web交互,稍后我們將通過(guò)瀏覽器來(lái)呈現(xiàn)一個(gè)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注冊(cè)中心地址。

3、申明Eureka client端
在springboot啟動(dòng)類中,添加@EnableEurekaClient注解,以申明此應(yīng)用是Eureka的一個(gè)客戶端。
@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注解表明這個(gè)bean具備負(fù)載均衡的功能,默認(rèn)使用的是輪詢機(jī)制。

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

5、創(chuàng)建service
使用注入的restTemplate來(lái)實(shí)現(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èn)服務(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;

    }
}

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

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

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

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

四、瀏覽器訪問(wèn)

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/75677.html

相關(guān)文章

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

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

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

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

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

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

    lpjustdoit 評(píng)論0 收藏0
  • Spring Cloud 快速入門

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

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

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

    wangbinke 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<