一、Spring Cloud Netflix
该项目是Spring Cloud的核心子项目,是对Netflix公司一系列开源产品的封装。它为Spring Boot应用提供了自配置的整合,只需要通过一些简单的注解,就可以快速地在Spring Cloud的应用中使用起来。
它主要提供的模块包括:
服务发现注册(Eureka)
客户端负载均衡(Ribbon)
断路器(Hystrix)
智能路由(Zuul)
开源地址:
http://netflix.github.io/
https://github.com/Netflix
二、服务注册和服务发现
调用关系说明:
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址给消费者。
4.服务消费者从提供者地址中调用消费者。
注意! 下面的服务端指:注册中心,客户端指:提供者和消费者
三、如何使用Eureka进行服务注册和发现
1、服务端添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
2、服务端添加配置
server.port=8088
spring.application.name=travel-eureka-provider
#tag::禁止注册中心注册自己
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#服务器的IP
eureka.instance.hostname=192.168.58.198
#指向另一个eureka地址
eureka.client.serviceUrl.defaultZone=http://192.168.13.129:8089/eureka/
单个注册中心地址
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka
3、服务端添加注解
@EnableEurekaServer
4、客户端添加依赖
org.springframework.cloud
spring-cloud-starter-eureka
5、客户端添加配置
提供者
server
server.port=7777
spring
spring.application.name=travel-platform-provider
eureka
eureka.client.serviceUrl.defaultZone=http://192.168.13.129:8089/eureka/,http://192.168.58.198:8088/eureka/
可以启动多个提供者进行负载均衡.
消费者
server
server.port=8888
spring
spring.application.name=spring-cloud-consumer
eureka
eureka.client.serviceUrl.defaultZone=http://192.168.13.129:8089/eureka/,http://192.168.58.198:8088/eureka/
6、客户端添加注解
@EnableEurekaClient
注意:
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
分析:是由于Eureka进入了保护模式。
在保护模式下,Eureka Server将会尝试保护其服务注册表中的信息,暂时不会注销服务注册表中的服务。
注意!!
消费者采用的是@FeignClient(name = “travel-platform-provider”) 注解,加入接口上,方式调用服务
@FeignClient(value = “travel-platform-provider”, url = “127.0.0.1:1013”) 直接调用是本地的提供者.
错误:
Load balancer does not have available server for client:
原因:@FeignClient(name = “travel-platform-provider”) 找不到提送的服务.是这个名字错误了.
Eureka 服务器地址:eureka
使用方法
直接下载下来导入idea 即可.然后打包放入不同服务器运行. 也可以配置在本地.
host转换
在hosts文件中加入如下配置
127.0.0.1 a
127.0.0.1 b
把application文件改服务器IP 即可.