springcloud之ribbon的使用

2021-09-11 23:34:46 字數 1764 閱讀 5010

spring cloud ribbon是乙個基於http和tcp的客戶端負載均衡工具,它基於netflix ribbon實現。通過spring cloud的封裝,可以讓我們輕鬆地將面向服務的rest模版請求自動轉換成客戶端負載均衡的服務呼叫.

下面乙個小demo呈上,介紹ribbon結合resttemplate進行服務呼叫,以及ribbon客戶端負載均衡的實現

1.新建springboot子工程作為服務消費者,老規矩先導入相關依賴(ps:springcloud依賴在其父工程已經匯入)

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

org.springframework.cloud

spring-cloud-starter-netflix-ribbon

2.在springboot啟動類上加上註解@enableeurekaclient和@enablediscoveryclient,並準備乙個resttemplate例項(ps:結合註解@loadbalanced才能實現客戶端負載均衡)

@enableeurekaclient

@enablediscoveryclient

public static void main(string args)

@bean

@loadbalanced //客戶端負載均衡

public resttemplate resttemplate()

}

#埠

server:

port: 9090

#服務名稱

spring:

name: consumer

eureka:

client:

service-url:

defaultzone:

4.在消費者工程中編寫乙個controller以進行服務呼叫

@restcontroller

public class consumercontroller

}

5.準備乙個服務提供者埠8080,編寫乙個controller用於接收消費者的請求

@restcontroller

public class providercontroller ")

public int port;

public string hello()

}

將服務提供者copy出乙份,改埠號為8081,其它不動

6.分別啟動註冊中心10000,兩個服務提供者8080和8081,以及消費者9090

訪問http://localhost:10000/eureka,觀察下圖可知兩個服務提供者已組建為乙個集群

重複訪問http://localhost:9090/helloconsumer,發現實際呼叫的服務會在兩個提供者間輪詢

說明:2.服務間的呼叫,在url中要以服務名稱代替ip+埠,如:http://provider/helloprovider

Springcloud微服務 元件三Ribbon

繼上兩篇接著說我們將服務註冊到eureka註冊中心後,那麼服務之間的呼叫是怎麼完成的?我們的消費者想要去註冊中心上消費我們的服務這裡就需要使用到springcloud 的元件ribbon ribbon是乙個基於http和tcp的客戶端負載均衡器。當使用ribbon對服務進行訪問的時候,它會實現從eu...

SpringCloud之Dashboard 流監控

新建springcloud consumer hystrix dashboard模組 新增依賴 org.springframework.cloudgroupid spring cloud starter hystrixartifactid 1.4.6.releaseversion dependenc...

SpringCloud之Hystrix應用實踐

使用springcloud的hystrix功能,有幾種方式 1 單應用監聽,也可以用於測試 引用包 org.springframework.boot spring boot starter actuator org.springframework.cloud spring cloud starter...