spring cloud
This commit is contained in:
@ -1,6 +1,28 @@
|
||||
# Spring-Cloud-Ribbon
|
||||
|
||||
|
||||
<nav>
|
||||
<a href="#一Ribbon-简介">一、Ribbon 简介</a><br/>
|
||||
<a href="#二项目结构">二、项目结构</a><br/>
|
||||
<a href="#三服务提供者的实现">三、服务提供者的实现</a><br/>
|
||||
<a href="#31-定义服务">3.1 定义服务</a><br/>
|
||||
<a href="#32-注册服务">3.2 注册服务</a><br/>
|
||||
<a href="#四服务消费者的实现">四、服务消费者的实现</a><br/>
|
||||
<a href="#41-基本依赖">4.1 基本依赖</a><br/>
|
||||
<a href="#42-注册服务">4.2 注册服务</a><br/>
|
||||
<a href="#43-LoadBalanced">4.3 @LoadBalanced</a><br/>
|
||||
<a href="#44-调用远程服务">4.4 调用远程服务</a><br/>
|
||||
<a href="#五启动测试">五、启动测试</a><br/>
|
||||
<a href="#51-启动服务">5.1 启动服务</a><br/>
|
||||
<a href="#52--验证负载均衡">5.2 验证负载均衡</a><br/>
|
||||
<a href="#六RestTemplate">六、RestTemplate</a><br/>
|
||||
<a href="#61--RestTemplate-规范">6.1 RestTemplate 规范</a><br/>
|
||||
<a href="#62--ForEntity-和-ForObject-的区别">6.2 ForEntity 和 ForObject 的区别</a><br/>
|
||||
<a href="#七负载均衡策略">七、负载均衡策略</a><br/>
|
||||
<a href="#71-内置的负载均衡的策略">7.1 内置的负载均衡的策略</a><br/>
|
||||
<a href="#72-指定负载均衡的策略">7.2 指定负载均衡的策略</a><br/>
|
||||
</nav>
|
||||
|
||||
## 一、Ribbon 简介
|
||||
|
||||
Ribbon 是 Netfix 公司开源的负载均衡组件,采用服务端负载均衡的方式,即消费者客户端维护可用的服务列表,并通过负载均衡的方式将请求按照指定的策略分摊给消费者,从而达到负载均衡的方式。
|
||||
@ -15,6 +37,8 @@ Ribbon 是 Netfix 公司开源的负载均衡组件,采用服务端负载均
|
||||
+ **eureka**:注册中心,Ribbon 从注册中心获取可用的服务列表,是实现负载均衡的基础。这里使用我们在 [服务的注册与发现](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-eureka) 这个用例中搭建的注册中心即可。
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/spring-cloud-ribbon.png"/> </div>
|
||||
|
||||
|
||||
## 三、服务提供者的实现
|
||||
|
||||
### 3.1 定义服务
|
||||
@ -22,6 +46,8 @@ Ribbon 是 Netfix 公司开源的负载均衡组件,采用服务端负载均
|
||||
产品服务由 `ProductService` 提供,并通过 `ProducerController` 将服务暴露给外部调用:
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/ribbon-producer.png"/> </div>
|
||||
|
||||
|
||||
ProductService.java:
|
||||
|
||||
```java
|
||||
@ -125,6 +151,8 @@ public class ProducerApplication {
|
||||
## 四、服务消费者的实现
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/ribbon-consumer.png"/> </div>
|
||||
|
||||
|
||||
### 4.1 基本依赖
|
||||
|
||||
```xml
|
||||
@ -225,15 +253,23 @@ public class ProductService implements IProductService {
|
||||
启动一个Eureka服务、三个生产者服务(注意区分端口)、和一个消费者服务:
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/spring-cloud-ribbon-app.png"/> </div>
|
||||
|
||||
|
||||
**服务注册中心:**
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/spring-cloud-ribbon-eureka.png"/> </div>
|
||||
|
||||
|
||||
### 5.2 验证负载均衡
|
||||
|
||||
访问 http://localhost:8080/sell/products 查看负载均衡的调用结果:
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/spring-cloud-ribbon-products-8020.png"/> </div>
|
||||
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/spring-cloud-ribbon-products-8030.png"/> </div>
|
||||
|
||||
|
||||
## 六、RestTemplate
|
||||
|
||||
### 6.1 RestTemplate 规范
|
||||
|
Reference in New Issue
Block a user