SpringCloud-Eureka注册中心

在跟大家说Eureka注册中心的时候,先跟大家说一下CAP的原则。

一、CAP原则

该理论提到了分布式系统中的3个特性:

Consistency 数据一致性

分布式系统中,数据会存在多个副本中,有一些问题会导致写入数据时,一部分副本成功、一部分副本失败,造成数据不一致。
满足一致性就要求对数据的更新操作成功后,多副本的数据必须保持一致。

Availability 可用性

在任何时候客户端对集群进行读写操作时,请求能够正常响应。

Partition Tolerance 分区容错性

即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务

CAP 理论指出:这3个特性不可能同时满足,最多满足2个。

Eureka遵循AP原则

二、什么是Eureka?

Eureka是Netflix开发的服务发现框架,主要是用于服务的注册和发现,其主要可以分为两个部分,一个是Eureka服务端(Eureka Server)和Eureka客户端(Eureka Client),其中客户端又可以分为服务提供者(Service Provider)和服务消费者(Service Consumer)。
在这里插入图片描述

二、Eureka注册中心配置------单机版

首先我们来创建一个注册中心,取名eurka-server

1、pom.xml文件

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

2、application.yml文件

#端口号
server:
  port: 8081

#项目的名字
spring:
  application:
    name: eurka-server
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    #消费者从注册中心拉取服务列表的功能
    fetchRegistry: false   
    serviceUrl:
      defaultZone: http://centerservice7001.com:7001/eureka/

3、启动类

@SpringBootApplication
@EnableEurekaServer//这个注解一定不能忘,该注解表示使用Eureka服务注册中心
public class CenterserviceApplication {

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

}

启动成功后,我们访问http://localhost:8081/,会出现如下页面
在这里插入图片描述
好,现在我们注册中心已经没问题了,那我们现在可以来创建一个客户端,并且把客户端注册到我们前面的注册中心里面去

1、pom.xml文件

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

2、application.yml文件

server:
  port: 8085

spring:
  application:
    name: service-hi
    
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8081/eureka/

3、启动类

@SpringBootApplication
@EnableEurekaClient
@RestController
public class EurekaclientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaclientApplication.class, args);
    }
    @RequestMapping("/hi")
    public String home(@RequestParam(value = "name", defaultValue = "forezp") String name) {
        LOG.log(Level.INFO, "hi is being called");
        return "hi " + name + " ,i am from port:" + port;
    }
    @RequestMapping("/info")
    public String info(){
        LOG.log(Level.INFO, "calling trace service-hi ");
        return "i'm service-hi";

    }

}

启动成功之后我们刷新一下http://localhost:8081/,如图出现红色框框证明我们的客户端已经成功注册到了Eureka注册中心了
在这里插入图片描述
接下来我们访问一下客户端的方法http://localhost:8085/hi?name=forezp,应该会显示瑞如下:在这里插入图片描述

三、Eureka注册中心-----集群版

在这里插入图片描述
如图,Eureka注册中心的集群,用一句话来总结:各个注册中心之间相互注册,相互守望。

我们修改eurka-server的application.yml文件

server:
  port: 8081

spring:
  application:
    name: eurka-server

eureka:
  instance:
    hostname: centerservice8001.com
  client:
    registerWithEureka: false
    fetchRegistry: false   #消费者从注册中心拉取服务列表的功能
    serviceUrl:
      defaultZone: http://centerservice7001.com:7001/eureka/

我们再建立一个注册中心步骤按照前面

server:
  port: 7001

spring:
  application:
    name: eurka-server7001

eureka:
  instance:
    hostname: centerservice7001.com
  client:
    registerWithEureka: false
    fetchRegistry: false   #消费者从注册中心拉取服务列表的功能
    serviceUrl:
      defaultZone: http://centerservice8001.com:8081/eureka/

在修改service-hi的application.yml文件

server:
  port: 8085

spring:
  application:
    name: service-hi

eureka:
  client:
    serviceUrl:
      #defaultZone: http://localhost:8081/eureka/
      defaultZone: http://centerservice8001.com:8081/eureka/,http://centerservice7001.com:7081/eureka/

除此之外,还需要在C:\Windows\System32\drivers\etc的host文件增加

127.0.0.1       centerservice8001.com
127.0.0.1       centerservice7001.com

访问http://localhost:8081/和http://localhost:7001/
在这里插入图片描述
在这里插入图片描述

可以看到两个注册中心都已经相互注册,并且客户端也注册到了两个配置中心里面了

四、Eureka知识点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值