Spring Cloud-----Eureka

1.Eureka 作为Spring Cloud的服务注册与发现组件,包括两个组件,Eureka Server和Eureka Client。它们的作用是什么呢?

(1)Eureka Server 提供服务发现的能力,各个微服务启动的时候,会向Eureka Server注册自己的信息(IP,端口,服务名称),Eureka Server会存储这些信息。
(2)微服务启动后,会周期性的向Eureka Server发送心跳以续约自己的租期。默认是30秒。
(3)如果Eureka Server在一定时间内没有收到某个微服务实例的心跳,Eureka会注销该实例。默认是90秒。
(4)多个Eureka Server之间通过复制的方式,来实现服务注册表中数据的同步。
(5)Eureka Client会缓存服务注册表中的信息。优势在于不用每次都去查询Eureka Server,降低Eureka Server的压力。

2.编写一个Eureka Server

(1)引入eureka-server的pom

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

(2)在启动类上要加上@EnableEurekaServer注解。声明这是一个Eureka Server。
(3)在配置文件application.yml中添加内容。

server: 
  port: 8761
eureka:
 client:
 	registerWithEureka: false
 	fetchRegistry: false
 	serviceUrl: 
 		defaultZone: http://localhost:8761/eureka/

eureka.client.registerWithEureka:表示是否将自己注册到Eureka Server。默认是true,当前应用是Eureka Server,所以设置成false。
eureka.client.fetchRegistry:表示是否从Eureka Server获取注册信息,默认设置为true。表示同步其他Eureka Server节点的数据。
eureka.client.serviceUrl.defaultZone:设置与Eureka Server交互的地址。

3.编写一个Eureka Client

(1)在项目中添加eureka pom

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-start-eureka</artifactId>
</dependency>

(2)在配置文件中application.yml中添加配置

spring:
	application:
		name: eureka-client
eureka:
	client:
		serviceUrl:
			defaultZone: http://localhost:8761/eureka
	instance:
		prefer-ip-address: true

spring.application.name用于指定注册到Eureka server上的应用名称。
eureka.instance.prefer-ip-address = true表示将自己的IP注册到Eurek Server。如果不配置或者将其设置为false,表示注册微服务的hostname到eurek server中。
(3)在启动类上加上@EnableDiscoveryClient,声明这是一个Eureka client。
@EnableDiscoveryClient和@EnableEurekaClient的区别。
前者应用范围广泛,什么样的注册中心都可以用,后者只针对于eureka作为注册中心时使用。

4.Eureka Server的高可用

建立eureka sever集群。那么怎么建立eureka server集群呢?

5.Eureka Server添加用户认证

(1)在eureka sever项目的pom文件中添加依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency>

注意是springboot里边的包。
(2)在配置文件application.yml中添加内容

spring:
	security:
		basic:
			enabled: true
		user:
			name: user
			password: password

spring.security.basic.enabled = true 开启基于http basic的认证。
下边是配置登录时的用户名和密码。
(3)微服务注册到添加用户认证的Eureka Server上
只需要将eureka client的eureka.client.serviceUrl.defaultZone:http://user:password@Eureka_Host:port/eureka/这种形式就可以了,就是在地址前边加上用户名和密码。

6.Eureka的自我保护模式

自我保护模式解决的问题是当短时间内丢失过多的客户端的时候,原因可能是网络原因,为了避免错误的注销掉客户端,服务端就会开启自我保护模式,不再删除注册表中的数据。

eureka:
	server:
		enable-self-preservation: false

false是禁用自我保护模式。

7.Eureka的健康检查

eureka:
	client:
		healthcheck:
			enabled: true

注意:健康检查目前只能配置在applicaiton.yml中

问题:application.yml和bootstrap.yml的区别?
加载顺序上bootstrap.yml先于application.yml加载。
bootstrap.yml配置系统级的配置
application.yml是应用级的配置

你可能感兴趣的:(SpringCloud)