博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud学习笔记(2)——Ribbon
阅读量:6272 次
发布时间:2019-06-22

本文共 2058 字,大约阅读时间需要 6 分钟。

hot3.png

参考SpringCloud官网第16、17章

16. Client Side Load Balancer: Ribbon

Ribbon是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制。Feign也是用的Ribbon,所以在这一章你也可以用@FeignClient

Ribbon的一个核心概念是命名的客户端。每个负载均衡器都是这个组件的全体的一部分,它们一起工作来连接到服务器,并且它们全体都有一个给定的名字。

Spring Cloud用RibbonClientConfiguration在ApplicationContext中创建一个新的全体,它包含一个ILoadBalancer、一个RestClient和一个ServerListFilter

16.1 How to Include Ribbon

SpringCloud学习笔记(2)——Ribbon

 

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

16.2 Customizing the Ribbon Client

Spring Cloud可以让你自己完全控制Ribbon客户端,通过用@RibbonClient来声明额外的配置。例如

SpringCloud学习笔记(2)——Ribbon

 

在这个例子中,这个客户端由RibbonClientConfiguration和FooConfiguration一起组成。

注意:本例中,FooConfiguration必须用@Configuration注解标注,但是它不应该在主Application Context的组件扫描之中,否则它将被所有的Ribbon客户端共享。如果你用@ComponentScan(或者@SpringBootApplication),那么你应该采取措施来避免它被包含到扫描的范围中。

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

16.3 Customizing default for all Ribbon Clients

通过@RibbonClients注解可以为所有的Ribbon客户端提供一个默认的配置。例如

SpringCloud学习笔记(2)——Ribbon

 

16.6 Example: How to Use Ribbon Without Eureka

Eureka提供了一种抽象的发现远程服务的便捷的方式,这样你就不必在客户端代码中硬编码服务端的URL,但是如果你不用它,那么Ribbon和Feign也是经得起考验的。假设,你没有使用Eureka,并且你用@FeignClient声明了一个"stores"服务,这个时候Ribbon Client默认生成一个配置的服务列表,当然你也可以提供下面这样的配置:

SpringCloud学习笔记(2)——Ribbon

 

16.7 Example: Disable Eureka use in Ribbon

SpringCloud学习笔记(2)——Ribbon

 

说了这么多,那究竟怎么用呢?下面看示例演示

在这个示例中有三个角色:注册中心、服务提供方、服务消费方

SpringCloud学习笔记(2)——Ribbon

 

服务提供方是eureka-demo-client,消费方是ribbon-demo,下面看下消费方是如何配置的

首先是pom.xml,这个没啥说的

SpringCloud学习笔记(2)——Ribbon

 

其次是application.yml,也没什么特别的

SpringCloud学习笔记(2)——Ribbon

 

最后是启动类

SpringCloud学习笔记(2)——Ribbon

 

还有调用的类

SpringCloud学习笔记(2)——Ribbon

 

先启动eureka-demo-server,然后再启动另外两个工程

SpringCloud学习笔记(2)——Ribbon

 

浏览器访问消费方地址

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

哈哈哈,访问成功!!!

SpringCloud学习笔记(2)——Ribbon

 

17. Declarative REST Client: Feign

Feign是一个声明式的Web服务客户端,它使得访问Web服务变得更容易。为了使用Feign,需要创建接口并且使用注解标注它。使用Feign的时候,Spring Cloud集成Ribbon和Eureka来提供一个具有负载均衡能力的HTTP客户端。

17.1 How to Include Feign

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

@FeignClient注解的value值是一个任意客户端的名字,这个名字被用于创建Ribbon负载均衡器。你还可以使用url属性来指定一个url。

Ribbon客户端想要发现"stores"这个服务的真实的物理地址。如果你的应用中使用的是Eureka,那么它将通过Eureka服务注册类解析。

17.2 Overriding Feign Defaults

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

接下来,用Feign演示如何调用

再新建一个工程feign-demo

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

SpringCloud学习笔记(2)——Ribbon

 

欢迎工作一到八年的Java工程师朋友们加入Java高级交流:854630135

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有直播平台和讲师直接交流噢

转载于:https://my.oschina.net/u/3990817/blog/3019124

你可能感兴趣的文章
CSS规范
查看>>
使用FastDateFormat来代替JDK自带的DateFormat
查看>>
Python爬虫从入门到放弃(十六)之 Scrapy框架中Item Pipeline用法
查看>>
Android源代码解析之(三)-->异步任务AsyncTask
查看>>
(zhuan) 自然语言处理中的Attention Model:是什么及为什么
查看>>
C#中使用RabbitMQ收发队列消息
查看>>
Hadoop1.2.1 全然分布式集群搭建实操笔记
查看>>
第三百二十七节,web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求...
查看>>
MVC总结--MVC简单介绍以及和WebForm差别
查看>>
tiny4412 裸机程序 五、控制icache【转】
查看>>
VB.NET多线程入门
查看>>
国外物联网平台初探(二) ——微软Azure IoT
查看>>
findlibrary returned null产生的联想,Android ndk开发打包时我们应该怎样注意平台的兼容(x86,arm,arm-v7a)...
查看>>
Android事件分发机制源代码分析
查看>>
《设计模式》结构型模式
查看>>
[javase学习笔记]-8.3 statickeyword使用的注意细节
查看>>
Spring集成RabbitMQ-使用RabbitMQ更方便
查看>>
Nginx 设置域名转向配置
查看>>
.net core 实现简单爬虫—抓取博客园的博文列表
查看>>
FP-Tree算法的实现
查看>>