Ribbon
客户端负载均衡
服务器端负载均衡
RestTemplate Ribbon EurekaClient EurekaServer 的关系
Ribbon 通过负载均衡的算法,从eurekaClient 提供的服务列表中,本次请求访问的某个服务,提供给RestTemple 进行访问
Ribbon 的负载均衡算法
使用Ribbon 通过轮询的方式访问
设置Ribbon的负载均衡策略
- 注解方式
- 配置方式
- 自定义方式
- 权重(可以设置在matedata中) 或者 hash 方式设置负载均衡策略
RestTemplae 发送负载均衡请求
Restful 风格api接口规范
- 基于http 协议
- 资源事先定义 生产者定义http://主机:端口/user/list
http://主机:端口/user/getUserList Get
升级 http://主机:端口/users Get 约定
http://主机:端口/user/deleteById=1 Get
升级 http://主机:端口/users/1 DEL GET POST PUT 修改
如何需要修改 添加版本v1 v2 v3
http://主机:端口/v1/users/1
http://主机:端口/v2/users/1
SpringData Rest
- 为啥要用 基于HTTP协议的SpringCloud
1.异构平台
java 调用python net php
2.可插拔
A B之间是弱关系 每次请求不一定调用哪个B B就可以上线和下线
基于http 的弱关系 dubbo 强关系 屏蔽网络抖动
3. Soap (xml) SpringCloud(json)
RestTemplate
String url = "http://eureka-service/hi";
String result = restTemplate.getForObject(url, String.class);
ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class);
System.out.println(forEntity);
- post 带参数
- location
- 一定要加 response.addHeader
- 拦截器
Feign
-
Feign 是对RestTemplate 封装
-
面向接口 的OpenFeign
-
定义接口
-
根据 UserApi provider 提供实现
-
客户端发起远程调用