一、eureka入门
1.1、什么是eureka?
答:是springcloud封装了netfix公司开发的eureka模块来实现注册和发现的服务(类似于zookeeper)。
eureka使用C-S的设计架构,Eureka Server作为服务注册功能的服务,它就是服务注册中心。
1.2、eureka的组件?
答:主要包含两大组件:eureka server 和eureka client.
Eureka Server: 提供服务注册服务,各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer服务列表就会存在可用的服务节点信息,服务节点的信息可以在界面上看到。
eureka client:是java的客户端,用于简化eureka的交互,客户端同时也备用一个内置、使用轮询算法的负载均衡器,在使用应用后,将会向eureka server发送心痛(默认是30秒),如果eurekaserver在多个心跳周期内没有接收到某个节点的心跳,eurekaserver将会从服务注册表中把这个服务移除掉。
三大角色:
1、eureka server:提供服务和发现。
2、service provider:服务提供方将自己服务注册到eureka中,从而消费端才能找到。
3、service consumer:服务消费者从eureka获取注册列表,从而能够消费服务。
二、eureka 安装以及项目搭建
2.1、创建maven项目的SpringBoot
第一步骤:
创建maven项目
定义项目名字
点击完成
2.2、pom.xml文件配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.debug.org</groupId>
<artifactId>microservicecloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.debugstyle.org</groupId>
<artifactId>microservicecloud-eureka-7001</artifactId>
<dependencies>
<!-- eureka service 服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!-- SpringBoot热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
</project>
2.3、application.yml配置
server:
port: 7001
eureka:
instance:
hostname: localhost #eureka服务端的实例名
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
# defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
2.4、启动了
server:
port: 7001
eureka:
instance:
hostname: localhost #eureka服务端的实例名
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
# defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
2.5、测试页面
2.2、eureka的自我保护机制
概念:某时刻某一个微服务不可用了,eureka不会立刻清理,依旧会对微服务的信息进行保存。
报错如下:
自我保护模式: