(二)SpringCloud-Eureka注册中心

目录

Eureka介绍

Eureka由多个实例组成,这些实例可以分为两种:Eureka Server和Eureka Client。Eureka Server作为服务的注册中心,提供服务注册和发现

在下面的例子中,我们将Eureka Client再分为Provider Client(服务提供者客户端)和Consumer Client(服务消费者客户端)。

Provider Client 作为服务提供方,将自身注册到Eureka,从而使服务消费方Consumer Client能够从注册中心获取到。服务消费方会从Eureka获取注册服务列表,从而能够消费服务。然而在实际的工作中是不会出现某个微服务仅仅只对外提供服务或者说只作为服务消费方。这里仅仅是方便理解而设计成这样。


Eureak注册中心介绍

了解几种常用的注册中心


修改配置host

host文件目录:C:\Windows\System32\drivers\etc。方便后面配置注册中心高可用集群。

127.0.0.1		www.eurekaServer7000.com
127.0.0.1		www.eurekaServer7001.com
127.0.0.1		www.eurekaServer7002.com
127.0.0.1		www.eurekaServer7003.com

在这里插入图片描述

1、部署Eureka Server

1.1 单机部署

1.1.1 引入依赖

<!--eureka-server 服务端 旧版本使用spring-cloud-starter-eureka-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

1.1.2 application.yml中添加配置

server:
  port: 7000
  servlet:
    context-path: /study

#eureka 服务端配置
eureka:
  instance:
    hostname: 127.0.0.1 #eureka服务端的实例名称
  client:
    register-with-eureka: false #false表示不向注册中心注册自己。没有做集群不需要自己注册自己
    fetch-registry: false #是否从Eureka Server获取注册的服务信息。false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。
      defaultZone: http://${
   eureka.instance.hostname}:${
   server.port}/study/eureka/ # 单节点配置

  server:
    enable-self-preservation: true # 关闭自我保护模式(缺省为打开)
    eviction-interval-timer-in-ms: 60000  # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)

1.1.4 启动类添加@EnableEurekaServer注解

添加@EnableEurekaServer注解,用于启动注册中心。启动成功后,访问http://127.0.0.1:7000/study/

@SpringBootApplication
@EnableEurekaServer // 开启Eureka服务注册中心
public class EurekaServer7000Start {
   
    public static void main(String[] args) {
   
        // 启动之后访问 http://127.0.0.1:7000/study/
        SpringApplication.run(EurekaServer7000Start.class,args);
    }
}

在这里插入图片描述

1.1.3 完整demo地址

gitee地址中的cloud-eureka-server7000模块


1.2 单机集群部署


1.2.1 在单机的基础上修改application.yml

#eureka 服务端配置
eureka:
  instance:
    hostname: www.eurekaServer7001.com #eureka服务端的实例名称 修改了hosts文件,单节点直接使用127.0.0.1
  client:
    register-with-eureka: true #false表示不向注册中心注册自己。没有做集群不需要自己注册自己
    fetch-registry: true #是否从Eureka Server获取注册的服务信息。false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。
      # 单节点配置 defaultZone: http://${eureka.instance.hostname}:${server.port}/study/eureka/

      # 集群配置从节点的Eureka
      defaultZone: http://www.eurekaServer7002.com:7002/study/eureka/,http://www.eurekaServer7003.com:7003/study/eureka/
  server:
    enable-self-preservation: true # 关闭自我保护模式(缺省为打开)
    eviction-interval-timer-in-ms: 60000  # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)

在这里插入图片描述

  • 与单机部署的差别
    eureka.client.register-with-eureka:true:向注册中心注册自己。
    eureka.client.fetch-registry:true:从Eureka Server获取注册的服务信息设置为true。
    eureka.client.service-url.defaultZone:配置集群中其他机器的地址,用逗号分隔。
    例如7001端口的集群,就需要配置7002和7003机器的地址(如果你将本机也配置,也是可以的)。

  • 其他事项说明
    eureka.client.register-with-eurekaeureka.client.fetch-registry即使都设置为false。集群中所有注册中心节点的服务列表也会是一致的。因为当一个Eureka Client在向集群中注册的时候,当前集群会将注册表根据eureka.client.service-url.defaultZone同步发送到其他的集群,进行信息同步。
    只不过eureka.client.register-with-eureka配置为false。集群的其他节点会出现在该节点的【不可用副本】中:
    在这里插入图片描述


1.2.2 配置注意事项

注意:必须使用配置的host域名,否则使用127.0.0.1或者是localhost,集群会无法通信。
在这里插入图片描述

原因:
在这里插入图片描述


public class PeerEurekaNodes {
   
	........省略.......
	
    protected List<String> resolvePeerUrls() {
   
        InstanceInfo myInfo = applicationInfoManager.getInfo();
        String zone = InstanceInfo.getZone(clientConfig.getAvailabilityZones(clientConfig.getRegion()), myInfo)</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值