eureka和zookeeper区别:
eureka:
- 强调AP(可用性)
- 集群构造: 对等构造
zookeeper:
- 强调CP (一致性)
- 集群构造: 主从构造
服务提供者
批改host文件,增加eureka1和eureka2的映射配置C:\Windows\System32\drivers\etc
127.0.0.1 eureka1127.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: 连贯已建设,申请已发送,期待响应的超时工夫