spring-cloud-eureka
基于Netflix Eureka做了二次封装,并不是spring-cloud自己去开发的新模块
由两个组件组成:
1.Eureka Server 注册中心
2.Eureka Client 服务注册
Eureka Server如何使用?
1.在pom.xml文件中引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.在springboot启动类中,开启Eureka Server功能(标注注解@EnableEurekaServer)
3.在配置文件(application.yml)中配置eureka
server:
port: 8761 // 端口号
spring:
application:
name: eureka // 服务名称
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka // 服务注册地址,多个可用","连接
register-with-eureka: false // 不显示自身
Eureka Client如何使用?
1.在pom.xml文件中引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.在springboot启动类中,开启Eureka Client功能(标注注解@EnableDiscoveryClient)
3.在配置文件(application.yml)中配置eureka client
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka // 服务注册地址,多个可用","连接
spring:
application:
name: client // 服务名称
server:
port: 8080 // 端口号
如何实现Eureka的高可用
1.增加Eureka Server的数量,各个注册中心相互注册
2.Eureka Client向多个(甚至全部)注册中心注册服务
注册中心的服务发现方式
1.客户端发现
客户端通过注册中心获取所有可用的服务端地址,然后通过一系列的算法(随机算法、轮询算法、hash算法等)选取其中一个服务端地址来访问。eureka就是属于客户端发现。
2.服务端发现
需要代理的介入,代理对所有可用服务端进行筛选(通过一系列算法),选出其中一个后将客户端请求发送给改服务端。Nginx、Zookeeper就属于服务端发现。