没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
前言
上两章节,介绍了关于注册中心-Eureka 的使用及高可用的配置示例,本章节开始,
来介绍服务和服务之间如何进行服务调用的,同时讲解下几种不同方式的服务调用。
一点知识
在 SpringCloud 体系中,服务之间的调用是通过 http 协议进行调用的。而注册中心的主
要目的就是维护这些服务的服务列表。在 Spring 中,提供了
RestTemplate。RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端。而在
SpringCloud 中也是使用此服务进行服务调用的。
同时在微服务中,一般服务都不会进行单点部署的,都会至少部署 2 台及以上机器。现在
我们有了注册中心进行服务列表的维护,就需要一个客户端负载均衡来进行动态服务的调
用。
所以开始示例前,先大致了解下关于负载均衡和 RestTemplate 的相关知识点。其实后面实
例的 Ribbon 和 Feign 最后的调用都是基于 RestTemplate 的,使用比较简单~
何为负载均衡
负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,
将请求/数据**【均匀】分摊**到多个操作单元上执行,负载均衡的关键在于【均
匀】。
实现的方式
实现负载均衡的方式有很多种,这里简单介绍下几种方式
1.HTTP 重定向负载均衡
根据用户的 hp 请求计算出一个真实的 web 服务器地址,并将该 web 服务器地址写
入 hp 重定向响应中返回给浏览器,由浏览器重新进行访问
优缺点:实现起来很简单,而缺点也显而易见了:请求两次才能完成一次访问;性能差;
重定向服务器会成为瓶颈
2.DNS 域名解析负载均衡
在 DNS 服务器上配置多个域名对应 IP 的记录。例如一个域名 www.baidu.com 对应一组
web 服务器 IP 地址,域名解析时经过 DNS 服务器的算法将一个域名请求分配到合适的
真实服务器上。
优缺点:加快访问速度,改善性能。同时由于 DNS 解析是多级解析,每一级 DNS 都可能缓
存记录 A,当某一服务器下线后,该服务器对应的 DNS 记录 A 可能仍然存在,导致分配到
该服务器的用户访问失败,而且 DNS 负载均衡采用的是简单的轮询算法,不能区分服务
器之间的差异,不能反映服务器当前运行状态。
3.反向代理负载均衡
反向代理处于 web 服务器这边,反向代理服务器提供负载均衡的功能,同时管理一组
web 服务器,它根据负载均衡算法将请求的浏览器访问转发到不同的 web 服务器处理,
处理结果经过反向服务器返回给浏览器。
优缺点:实现简单,可利用反向代理缓存资源(这是最常用的了)及改善网站性能。同时因
为是所有请求和响应的中转站,所以反向代理服务器可能成为瓶颈。
以上仅仅是部分实现方式,还有比如 IP 负载均衡、数据链路层负载均衡等等,这些可能涉及
到相关网络方面的知识点了,大家有兴趣可以自行搜索下。
客户端和服务端的负载均衡
实现负载均衡也又区分客户端和服务端之分,Ribbon 就是基于客户端的负载均衡。客户
端负载均衡:
服务端负载均衡:
服务端实现负载均衡方式有很多,比如:硬件 F5、Nginx、HA Proxy 等等,这些应该实施
相关人员应该比较熟悉了。
RestTemplate 简单介绍
RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多
种便捷访问远程 Hp 服务的方法,能够大大提高客户端的编写效率。
剩余22页未读,继续阅读
资源评论
- 色空空色2023-07-26作者以简单易懂的语言讲解,让初学者也能够轻松上手,非常实用。
- 申增浩2023-07-26文章内容针对问题提供了多种解决方案,让读者可以根据自身情况选择最适合的方式。
- 艾苛尔2023-07-26文章实例丰富,让人可以通过实际操作更好地理解Ribbon Feign的使用方法。
- 坐在地心看宇宙2023-07-26这篇文章对SpringCloud服务消费者的原理进行了详细的解析,让我对其有了清晰的认识。
- 思想假2023-07-26这篇文章让我对Ribbon Feign这一技术有了全新的认识,感谢作者的分享。
flash&
- 粉丝: 137
- 资源: 132
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功