目录
- Eureka简单介绍
- 配置Eureka
- 配置服务注册中心
- 服务提供者注册
- 自我保护机制
- 服务发现查看方法
- 注册中心集群配置
- 对比Zookeeper之CAP原则
一、Eureka简单介绍
什么是Eureka
- Netflix在设计Eureka时,遵循的就是AP原则。
- Eureka是Netflix的一个子模块,也是核心模块之一,基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了,功能类似Dubbo的注册中心,比如Zookeeper。
原理理解
- SpringCloud封装了NetFlix公司开发的Eureka模块来实现服务注册和发现(对比Zookeeper)
- Eureka采用了C-S的架构设计,Eureka Server 作为服务注册功能的服务器,它是服务注册中心,需要在代码+注解中去写,而不是类似Zookeeper直接打开软件
- 而系统中的其他微服务,使用Eureka的客户端(代码加注解)连接到EurekaServer并维持心跳连接。这样系统的维护人员就可以通过EurekaServer来监控系统中各个微服务能否正常运行,其他模块像Zuul
三大角色
- Eureka Server:提供服务的注册与发现,类似Zookeeper
- Service Provider:将自服务注册到Eureka中,从而使消费方能够找到
- Service Consumer:服务消费方从Eureka中获取注册服务列表,从而找到消费服务
二、配置Eureka
1.配置Eureka注册中心
基本步骤
- 创建子Maven模块,springcloud-eureka-7001
- 导依赖:spring-cloud-starter-eureka
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
- 编写配置文件application.yml
- 注解
@EnableEurekaServer
开启功能 - 配置类
最后访问服务中心的url测试
2.服务提供者注册
基本步骤
- 创建maven子工程springcloud-privoder-dept-8001
- 导入依赖spring-cloud-start-eureka
- 配置application.yml,说明服务注册位置(就是刚才动态配置的服务中心的url地址)
- 启动类配置注解
@EnableEurekaClient
,在服务启动后自动注册到注册中心
可以访问服务注册中心测试服务提供者是否成功注册
3.Eureka自我保护机制
4.服务发现查看方法
可以直接在application.yml配置info,在Eureka的注册中心可视化点击注册服务可以看到json格式的数据
点击服务中心可视化的服务url
也可以写一个restful的接口,依靠DiscoveryClient接口的方法来进行服务发现
然后启动类需要注解开启服务发现
最后访问测试
5.Eureka集群配置
基本步骤
- 创建多个maven子工程springcloud-eureka-7002、springcloud-eureka-7003…模拟集群
- 分别配置多个服务中心的application.yml和启动类
- 互相注册,多个注册中心关联起来
- 服务提供者发布服务到集群注册中心
三、对比Zookeeper的CAP原则