SpringCloud微服务间调用

服务间调用

1.http接口,基于tcp。浏览器客户端与服务器端通信基本上都是通过http方式实现的,json的传输数据格式。
2.rpc接口:远程过程调用,基于tcp,dubbo框架就是rpc调用,xml的传输数据格式
3.webservice接口

微服务间调用

springcloud服务间的调用方式有两种,RestTemplate和FeignClient,都是通过http的resutful api接口。两种方式都是通过httpCient调用
Ribbon是负载均衡器,两种方式都会使用Ribbon,RestTemplate用@LoadBalance实现负载均衡,@FeignClient默认集成ribbon调用

一.RestTemplate

RestTemplate提供了多种便捷访问远程http服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供用于访问Rest服务的客户端模板工具

0.实例化RestTemplate
用@Bean实例化返回RestTemplate对象;
1.RestTemplate调用方式一
指定调用的地址
2.RestTemplate调用方式二
通过注册中心获取server端的主机地址和端口号
3.RestTemplate调用方式三
实例化RestTemplate的时使用@LoadBalanced注解,使用注册中心的server端的服务名

二.FeignClient

@FeignClient(name = “注册中心server端的服务名”)

Ribbon负载均衡

如果服务端有多个服务器,那么就涉及负载均衡的问题。
springcloud提供了Ribbon来解决负载均衡的问题,有三种策略来配置负载均衡,分别是默认的、编码指定、配置文件指定。
负载均衡的算法有多种,常用的有轮询法、随机法、权重法。
默认的负载均衡策略使用轮询法,编码指定和配置文件指定可以选择随机法,轮询法和权重法三种的一种。
1.@LoadBalance是采用轮询算法的默认的负载均衡策略。
2.编码指定策略的负载均衡,Ribbon的核心组件为IRule,是所有负载均衡的父类。重新实现IRule类,就可以用编码指定的方式完成
3.配置文件指定负载均衡策略,在配置文件中配置

你可能感兴趣的:(java,spring,cloud,微服务,java,后端,docker)