支付微服务集群
一、参考cloud-provider-payment8001工程,创建一个新的cloud-provider-payment8002工程
cloud-provider-payment8002工程跟cloud-provider-payment8001工程一样,唯一不同的就是端口号不用,因此我们可以将cloud-provider-payment8001工程复制到cloud-provider-payment8002工程中
二、修改application.yaml文件
server:
port: 8002
spring:
application:
name: cloud-payment-serice
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/SpringCloudStudydb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
eureka:
client:
#表示是否将自己注册进EurekaServer默认为true .
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
fetch-registry: true
service-url:
#单机版 defaultZone: http://localhost:7001/eureka
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/ #集群版
mybatis:
# 指定mapper.xml文件存放的路径
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.junfu.springcloud.entities #所有Entity别名类所在包
三、修改订单服务访问地址
在Eureka单机测试的时候,我们使用的服务地址为http://localhost:8001
现在当我们使用集群之后,需要修改为http://CLOUD-PAYMENT-SERICE,地址名称就是下图勾画出来的服务名称
四、在配置类里面添加@LoadBalanced注解
使用@LoadBalanced注解赋予RestTemplate负载均衡的能力
五、在cloud-provider-payment8002工程和cloud-provider-payment8001工程中的controller添加输出端口号
六、测试
- 先启动7001、7002服务端
- 在启动 80、8001、8002客户端
- 在浏览器进入http://localhost/consumer/payment/get/1网页,如果成功,效果如下:
8001和8002端口号交替出现,说明我们成功实现了负载均衡。