Eureka

Eureka是一个注册中心,它用于微服务;
Zookeeper也是一个注册中心,这两个注册中心的区别
c:数据的一致性:注册中心的集群数据是一致的
zookeeper集群的数据是一致的
Eureka只能保证最终一致性,不能保证强一致性。由于异步性,Eureka Client从Eureka Server获取的微服务节点会有失效的。这样,当访问失效的节点就会产生错误。所以开发的时候最好采用重试机制减少出错的可能。是最终一致性更加趋向于强一致性。
a:服务的可用性
zookeeper中的主机宕机后,从机间会选举出一个主机,在选举的过程中,由于没有主机,所以在这段时间内不能访问zookeeper,选举出一个主机(需要120秒)后才能对外提供服务
Eureka则没有主从机的概念,只要有一天机器存活着就能访问;
p:分区的容错性(在集群里面的集群,因为网络原因,机房的原因,可能导致数据不会里面同步),它在分布式 必须需要实现的特性!
zookeeper强调数据的一致性,和分区的容错性,cp
Eureka强调的是服务的可用性,和分区的容错性,ap
Eureka
在这里插入图片描述
Eureka-server的创建
创建一个springboot项目,只需依赖一个eureka,在启动类上需添加一个@EnableEurekaServer注解,写配置文件
创建springboot项目:
在这里插入图片描述
2. 选择依赖
在这里插入图片描述
3.在启动类上添加注解@EnableEurekaServer

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(EurekaServiceApplication.class, args);
	}

}
  1. 写配置文件
server:
  port: 8761
spring:
  application:
    name: eureka-service
  1. 启动测试,访问注册中心
    在这里插入图片描述
    在这里插入图片描述
    如果想改Status里面的名字,只需修改配置文件的名称
server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  instance:
    instance-id: ${spring.application.name}:${server.port} # 服务的名称

再次启动,访问注册中心,可以看到Status的名字已经修改了
在这里插入图片描述
将鼠标放到Status的名字上,浏览 器的左下角会出现一个地址,它默认显示的是主机的名称
在这里插入图片描述
如果想让它显示ip地址,只需修改配置文件,添加prefer-ip-address: true # 优先显示地址

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  instance:
    instance-id: ${spring.application.name}:${server.port} # 服务的名称
    prefer-ip-address: true # 优先显示地址

我们可以看到这个注册中心自己注册了自己,我们观察源码发现,eureka默认的配置会向8761 的注册中心注册自己。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果不想自己注册自己,只需修改配置文件
register-with-eureka: false #是否把自己注册到Eureka上面
fetch-registry: false # 是否从Eureka上面拉取服务列表

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  instance:
    instance-id: ${spring.application.name}:${server.port} # 服务的名称
    prefer-ip-address: true # 优先显示地址
  client:
    register-with-eureka: false #是否把自己注册到Eureka上面
    fetch-registry: false # 是否从Eureka上面拉取服务列表

创建Eureka-Client
和创建Eureka-Server过程很像,Eureka-Client的启动类上不需要添加eureka注解
创建springboot项目
添加依赖
在这里插入图片描述
修改配置文件

server:
  port: 8080 
spring:
  application:
    name: eureka-client-a
eureka:
  instance:
    instance-id: ${spring.application.name}:${server.port} # 服务的名称
    prefer-ip-address: true # 优先显示地址
  client:
    serviceUrl: 
      defaultzone: http://peer1:8761/eureka # 客户端注册的注册中心的地址
      

集群的原理和架构
在这里插入图片描述
搭建集群,注册的注册中心的地址间使用逗号分隔

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  instance:
    instance-id: ${spring.application.name}:${server.port} # 服务的名称
    prefer-ip-address: true # 优先显示地址
  client: 
    serviceUrl: 
      defaultzone: http://peer1:8761/eureka, http://peer2:8762, http://peer3:8763 # 客户端注册的注册中心的地址

启动项目,访问其中一个注册中心
在这里插入图片描述
小问题:
在这里插入图片描述
在之前的版本 里面 :
service-url的地址,需要自己手动改为:serviceUrl,否则集群搭建 不成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值