Spring Cloud Eureka入门配置

一.Spring Cloud Eureka和Zookeeper的区别?
Spring Cloud Eureka入门配置_第1张图片
CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
CAP原则的精髓之处就是要么AP,要么AC,要么CP,但是不存在CAP。
Zk注重数据的一致性
Eureka不是很注重数据的一致性

A服务的可用性(若zk集群里面的master挂了怎么办)
在zk里面,若主机挂了,则zk集群整体不在对外提供服务,需要选一个新的出来(120s)才能继续对外服务
eureka注重服务的可用性,当Eureka集群中只要有一台活着,它就能对外提供服务

Zookeeper 注重数据的一致性,CP
Eureka 注重服务的可用性 AP 

二.Spring Cloud Eureka快速入门
Spring Cloud Eureka入门配置_第2张图片
2.1搭建Eureka-Server
Spring Cloud Eureka入门配置_第3张图片
2.2选择依赖
Spring Cloud Eureka入门配置_第4张图片
Spring Cloud Eureka入门配置_第5张图片
2.3修改配置文件

server:
  port: 8080
spring:
  application:
    name: eureka-server

2.4添加注解
Spring Cloud Eureka入门配置_第6张图片
2.5启动测试
注册中心搭建完毕(Eureka-Server 不仅提供让别人注册的功能,它也能 注册到别人里面)
Spring Cloud Eureka入门配置_第7张图片
观察源码发现,eureka默认的配置会向8761 的注册中心注册自己。
Spring Cloud Eureka入门配置_第8张图片
三.搭建Eureka-Client
3.1 创建客户端a
Spring Cloud Eureka入门配置_第9张图片
3.2选择依赖
Spring Cloud Eureka入门配置_第10张图片

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

3.3修改配置文件

server:
  port: 8080
spring:
  application:
    name: eureka-client-a
eureka:
  client:
    serviceUrl: # 不要使用service-url,它有小的bug
     defaultZone: http://localhost:8761/eureka/ # 向那个注册中心注册自己

3.4启动项目(发现有个Client-a已经在Eureka服务端注册成功)
Spring Cloud Eureka入门配置_第11张图片
创建客户端Client-b
修改配置文件端口号

server:
  port: 8090
spring:
  application:
    name: eureka-client-b
eureka:
  client:
    serviceUrl:
     defaultZone: http://localhost:8761/eureka/

四.启动Eureka-server,Client-a,Client’-b
在eureka 里面怎么区分不同的服务,通过spring.application.name 来区分的
修改server.port ,启动三个eureka-client-a
在这里插入图片描述
4.1注册中心状态认识
在这里插入图片描述
在源码调试时,将会出现这些状态
UP: 服务是上线的
DOWN:服务是下线的
UN_KONW: 服务的状态未知

四.服务的拉取和服务的注册
服务的拉取和注册都是默认开启的,我们可以选择关闭
Spring Cloud Eureka入门配置_第12张图片
五.常用的配置文件的设置
1.要注册到哪个注册中心里面

eureka:
   client:
      serviceUrl:
        defaultZone:http://localhost:8761/eureka/

2.服务实例的id

eureka:
	instance:       服务的名称
		instance-id: ${spring.application.name}:${server.port}

3.使用ip地址而不是主机名称

eureka:
	instance:       服务的名称
		instance-id: ${spring.application.name}:${server.port}
		prefer-ip-address:true

4.单机版的注册中心(eureka-server)服务的拉取和注册

eureka:       	该项目向那个注册中心注册自己
	client:
		register-with-eureka:false   是否把自己注册到eureka上面
		fetch-register:false         是否从erreka上面拉取服务列表

你可能感兴趣的:(微服务)