四、Eureka、Server Provider集群配置

8 篇文章 0 订阅
3 篇文章 0 订阅
本文详细介绍了如何在SpringCloud中搭建Eureka服务器集群,并指导读者如何配置client以实现服务的高可用性和负载均衡。涉及单机到集群的迁移,配置差异以及客户端的调整,旨在提升应用运维效率。
摘要由CSDN通过智能技术生成

SpringCloud系列目录:


  续上片文章,在此之前我们已经将完成了单机版的Eureka Server、client的搭建。这种方式的确是可以使用,但是有风险。万一其中的一台服务gua掉,那我们的整个应用岂不是都会出现问题?所以一般的应用都会以集群的形式部署服务!,现在的服务部署方式基本上都是容器化,所以在这方面运维效率要高很多~

  前面Eureka Server只有一个7001,那接下来要继续创建一个7002,这样即便其中的一台Server掉线,那也不会影响我Comsumer的访问
在这里插入图片描述

一、搭建Eureka server集群

  这创建的方式和创建7001服务是相同的,只不过其中有些微小的差异需要注意,后面我会提到。下面是7001和7002的结构。
在这里插入图片描述

1、配置依赖

引入的依赖要注意7002还是使用的Erueka-sever的依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <!--    引入自定义的api通用包-->
        <dependency>
            <groupId>com.gaowz</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- boot web actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
    </dependencies>
2、修改application.yml配置文件
server:
  port: 7002
eureka:
  instance:
    hostname: eureka7002.com  #eureka服务端的实例名字
  client:
    register-with-eureka: false    #表识不向注册中心注册自己 物业公司不需要向自己交物业费
    fetch-registry: false   #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/    #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址


单机版的配置和集群版的配置就在于defaultZone这个标签,这里我们设置交互的查询地址为7001,这样两个Eureka-server就可以相互注册相互发现,从而起到集群的作用

3、测试

这里启动5个服务做测试
在这里插入图片描述
1)先看7001
在这里插入图片描述
  这里可以看到,对应的服务都已经进来了。
2)7002服务
在这里插入图片描述
  在7001和7002的DS Replicas中可以发现两个服务相互注册,相互守望,从而形成一个集群

二、搭建client集群

  Client集群这里还是使用上述的案例,结构图如下所示:
在这里插入图片描述


  8002的搭建与8001的搭建相同,业务代码可以直接拿过来用,这里就不在贴图(如果不是很明确的地方也可以直接把把代码拉下来),需要调整的地方只有application.yml配置文件,因为是集群版,所以要分别向7001和7002注册

#微服务建议一定要写服务端口号和微服务名称
server:
  #端口号
  port: 8002

spring:
  application:
    #微服务名称 此处的名称即为注册发现中心的名称
    name: cloud-payment-service
  #数据库配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    #mysql5.x的没有cj
    driver-class-name: com.mysql.jdbc.Driver
    #记得先创建数据库
    url: jdbc:mysql://localhost:3306/springcloud_dev?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456


#与mybatis整合的配置信息
#mybatis配置

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.gao.domain  #所有Entity别名类所在包

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      #单机版配置
      #defaultZone: http://localhost:7001/eureka
      #集群版
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
  instance:
    instance-id: payment8002
    prefer-ip-address: true  #访问路径可以显示IP地址

  同样8001我们也需要做如下修改,启动之后我们通过80服务来访问8001和8002,如果配置没有问题的话,会发现8001和8002两个服务轮询访问,因为Eureka中默认的负载均衡方式就是轮询,这里Eureka中常用到的负载均衡暂时不需要关注,后面我们会提到。
在这里插入图片描述
到这里集群版的Eureka server以及client就已经搭建完成了,前面博文中提到过的OpenFein以及负载均衡常用的算法在后续的文中都会提到

上一篇 Eureka注册与发现之Eureka Comsumer  下一篇

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值