SpringCloud_Eureka服务注册中心及Eureka集群

一.新建Eureka服务注册中心(eureka-server)模块

1.导入依赖

注:此处导入的是eureka-server依赖,区别于eureka-client依赖

        <!--热部署依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <version>2.6.7</version>
        </dependency>
        <!--eureka server依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <version>3.1.2</version>
        </dependency>

2.编写主启动类

注:需要在主启动类添加@EnableEurekaServer注解以开启eureka服务注册中心

@SpringBootApplication
@EnableEurekaServer//开启eureka服务注册中心
public class EurekaServer_7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class,args);
    }
}

3.配置yml文件

server:
  port: 7001

spring:
  application:
    name: eureka-server

eureka:
  instance:
    hostname: eureka7001 #设置主机名
  client:
    register-with-eureka: false #不向自身的eureka服务中心自我注册
    fetch-registry: false #不从eureka服务中心获得注册信息 因为自身即注册中心
    service-url:
      defaultZone: http://eureka7002:7002/eureka/ #向eureka集群中的其他eureka服务中心注册自己

以同样的方式创建另一个eureka-server模块eureka7002,在其配置文件中设置向eureka7001服务中心注册自己

4.修改host文件(C:\Windows\System32\drivers\etc)

在文件中添加127.0.0.1(localhost)的别称

原因:添加别称后,可用别称代替eureka.client.service-url.defaultZone地址中的localhost,进而使得eureka服务注册中心的DS Replicas显示别称(否则只显示localhost,在集群数量大于或等于三时无法直观地区分集群中的个体)

二.修改provider和consumer模块

1.导入依赖

注:此处导入的是eureka-client依赖,区别于eureka-server依赖

<!--eureka client依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>3.1.2</version>
        </dependency>

2.为主启动类添加@EnableEurekaClient注解

3.配置eureka相关的yml配置

Provider:

#Eureka配置
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001:7001/eureka/,http://eureka7002:7002/eureka/
  instance:
    instance-id: springcloud-Provider-Dept-8001 #修改实例名称
    prefer-ip-address: true  # 鼠标悬停于实例上时显示ip地址而非主机名

 Consumer:

#eureka配置
eureka:
  client:
    register-with-eureka: false #服务消费者不向eureka服务中心注册自己
    service-url: #获取服务的eureka服务中心地址
      defaultZone: http://eureka7001:7001/eureka/,http://eureka7002:7002/eureka/

注:

Consumer中若使用ResTemplate:需将url中的微服务主机ip+端口修改为Provider的微服务名(微服务名于Provider中通过spring.application.name设置)

Consumer中若使用Feign:无需赋值@FeignClient注解中的url属性,而是赋值name属性

同一微服务名下可配置多个Provider用于负载均衡(需额外设置负载均衡) 

运行效果

启动eureka-server与Provider,访问http://eureka7001:7001

可以看到,DS Replicas中显示了eureka集群中的其他个体

SPRINGCLOUD-PROVIDER-DEPT为微服务名,通过spring.application.name设置;springcloud-Provider-Dept-8001等为实例名,eureka.instance.instance-id设置

eureka7002不再赘述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值