【Springcloud】(03)中级搭建-Eureka集群环境构建

(1)Eureka搭建集群环境

相互注册,相互守望

(1.2)再写一个cloud-eureka-server7002

步骤跟cloud-eureka-server7001相同

(1.3)修改映射配置

文件地址:C:\Windows\System32\drivers\etc目录下的hosts文件
在这里插入图片描述

(1.4)改7001和7002的yml

把以前的单机版改成集群版,让它们之间互相注册,互相守望

#访问地址就是http://localhost:7001/
server:
  port: 7001

eureka:
  instance:
    hostname: eureka7001.com #euraka服务端的实例名称
  client:
    #false表示不往注册中心注册自己
    regiter-with-eureka: false
    #fasle表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    fetch-registry: false
    service-url:
    #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7002.com:7002/eureka/
server:
  port: 7002

eureka:
  instance:
    hostname: eureka7002.com #euraka服务端的实例名称
  client:
    #false表示不往注册中心注册自己
    regiter-with-eureka: false
    #fasle表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    fetch-registry: false
    service-url:
    #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7001.com:7001/eureka/

(1.5)依次启动7001和7002进行测试

如图
(1)测试地址:http://localhost:7001/
在这里插入图片描述(2)测试地址:http://localhost:7002/
在这里插入图片描述
(3)测试地址:http://eureka7001.com:7001/
在这里插入图片描述
(4)测试地址:http://eureka7002.com:7002/
在这里插入图片描述

(2)把80和8001都配置到集群环境中

(2.1)修改yml

server:
  port: 80 #服务端口

spring:
  application:
    name: cloud-consumer-order #服务名,也就是放进注册中心的名字

eureka:
  client:
    #表示是否把自己注册到EurekaServer默认为true
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true,单节点无所谓,集群必须设置为true此案呢过配合ribbon使用负载均衡
    fetchRegistry: true
    #注册中心的地址
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
server:
  port: 8001 #服务端口

spring:
  application:
    name: cloud-payment-service #服务名,也就是放进注册中心的名字
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  #当前数据源操作类型
    driver-class-name: com.mysql.jdbc.Driver #数据库驱动包
    url: jdbc:mysql://localhost:3306/cloud?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
    username: root
    password: admin

devtools:
  restart:
    enabled: true #是否支持热部署

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.allen.springcloud.entities  #所有entity别名所在包

eureka:
  client:
    #表示是否把自己注册到EurekaServer默认为true
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true,单节点无所谓,集群必须设置为true此案呢过配合ribbon使用负载均衡
    fetchRegistry: true
    #注册中心的地址
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版

(2.2)测试结果

(1)启动的顺序:
1-7001
2-7002
3-8001
4-80

(2)看看注册中心:分别用http://localhost:7001/和http://localhost:7002/,都显示如下
在这里插入图片描述
(3)测试一下业务功能
在这里插入图片描述

(3)Service Provider也要搭建集群配置(8002)

(3.1)创建cloud-provider-payment8002模块,跟8001差不多

(3.2)测试一下

(1)测试地址:http://eureka7002.com:7002/
(1)
(2)测试业务功能

1)使用8001直接测试,测试地址:localhost:8001/payment/get/2
在这里插入图片描述
2)使用8002直接测试,测试地址:localhost:8002/payment/get/2
在这里插入图片描述
3)使用consumer测试,测试地址:localhost/consumer/payment/get/3
发现每次这样请求都是经过8001,而不会经过8002,这样是不合适的,所以要进行负载均衡

在这里插入图片描述

在这里插入图片描述

(4)修改80的Controller,实现负载均衡

(4.1)修改consumer的访问路径

端口号不能写死成8001,要改成http://CLOUD-PAYMENT-SERVICE,交给Eureka来进行分配
在这里插入图片描述

(4.2)赋予RestTemplate负载均衡的能力

但是因为CLOUD-PAYMENT-SERVICE下面有两个,分别为8001和8002,它不知道该选择哪个,所以直接运行的话会报错

解决方法就是添加一个注解@LoadBalanced,赋予RestTemplate负载均衡的能力
在这里插入图片描述

(4.3)再测试一下

测试地址:localhost/consumer/payment/get/3
可以看到,每次刷新的时候,访问的端口都会变化,不是以前那样每次访问的时候都只访问8001端口,实现了轮询的负载均衡

在这里插入图片描述

(5)actuator微服务信息完善

(5.1)主机名称:服务名称修改

修改8001和8002的yml文件,如下图:
在这里插入图片描述
实现的效果如下图:
在这里插入图片描述

(5.2)访问信息有IP信息提示

(1)当前问题:没有IP信息提示

(2)修改8001和8002的yml
在这里插入图片描述

(3)修改之后的效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值