eureka和zookeeper区别:
eureka:
- 强调AP(可用性)
- 集群结构: 对等结构
zookeeper:
- 强调CP (一致性)
- 集群结构: 主从结构
服务提供者
修改host文件,添加eureka1和eureka2的映射配置C:\Windows\System32\drivers\etc
127.0.0.1 eureka1
127.0.0.1 eureka2
修改02、03、04这三个项目
1.添加eureka client 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.yml配置eureka的注册链接地址: http://eureka1:2001/eureka
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka
单台eureka 服务器启动后报错: Connect to localhost:8761 timed out
这是自动配置的一个默认集群服务器,但是这默认服务器不存在,所以出错
后面搭建了集群服务,默认服务器就不会再自动配置
sp02商品,和sp05 eureka 集群
在另一个端口在启动一个商品服务
java -jar item.jar # 根据application.yml的配置启动
# 指定端口启动
java -jar item.jar --server.port=8002 #命令行参数可以覆盖yml配置
远程调用
RestTemplate
springboot 提供的远程调用工具
类似于 HttpClient,可以发送http请求,并处理响应.RestTemplate简化了Rest API调用,只需要使用它的一个方法,就可以完成请求、响应、Json转换
方法:
- getForObject(url,转换的类型.class,提交的参数)
- postForObject(url,协议提数据,转换的类型.class)
RestTemplate和Dubbo远程调用的区别:
RestTemplate:
- http调用
- 效率低
Dubbo:
- Rpc调用,Java的序列化
- 效率高
Ribbon
Springcloud集成的工具,作用是负载均衡,和重试
负载均衡
Ribbon 对RestTemplate 做了封装,增强了RestTemplate的功能
1.获得地址表
2.轮询一个服务的主机地址列表
3.RestTemplate负责执行最终调用
添加负载均衡
1.ribbon依赖
2.@LoadBalanced注解,对RestTemplate进行功能增强
3.修改调用地址,使用服务di,而不是具体主机地址
Ribbon重试
一种容错机制,当调用远程服务失败,可以自动重试调用,客户端不知道重试
添加重试:
1.添加spring-retry依赖
2.配置重试参数
1.在yml中配置
MaxAutoRetries: 单台服务器的重试次数
MaxAutoRetriesNextServer: 更换服务器的次数
2.在java代码中设置
ConnectTimeout: 与远程服务建立网络连接的超时时间
ReadTimeout: 连接已建立,请求已发送,等待响应的超时时间
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。