Eureka集群原理说明
解决办法: 搭建Eureka注册中心集群,实现负载均衡+故障容错
Eureka集群环境构建步骤
新建cloud-eureka-server7002
参考cloud-eureka-server7001,我是在本地磁盘完成的复制相关包及配置文件
改POM
<dependencies>
<!--eureka-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>com.sunyan.springcloud</groupId>
<artifactId>cloud-api-common</artifactId>
<version>${project.version}</version>
</dependency>
<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>
<!--一般为通用配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
修改映射配置
1.找到C:WindowsSystem32driversetc路径下的hosts文件
2.修改映射配置添加hosts文件
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
这里win10修改hosts文件遇到问题,参考Windows系统修改Hosts文件
3.刷新hosts文件
ipconfig /flushdns
写YMl
以前单机
7001
7002
此处注意yml文件除了注意空格缩进,还要注意单词不要写错,我的default就写成了defautl。。。
主启动
测试
启动Eureka7001、Eureka7002
分别用域名访问
http://eureka7001.com:7001/
http://eureka7002.com:7002/
将支付服务8001微服务发布到上面2台Eureka集群配置中
YML
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
# 集群版
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
将订单服务80微服务发布到上面2台Eureka集群配置中
YML
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
测试01
先要启动EurekaServer,7001/7002服务
再要启动服务提供者provider,8001
再要启动消费者,80
http://localhost/consumer/payment/get/2
相互注册
支付服务提供者8001集群环境搭建
新建cloud-provider-payment8002
参考cloud-provider-payment8001
改POM
YAML
主启动
业务类
复制8001
修改8001/8002的controller
负载均衡
bug
查询刷新网页,一直是8001
订单服务访问地址不能写死
微服务名称
使用@LoadBalanced注解赋予RestTemplate负载均衡的能力
ApplicationContextBean
Ribbon的负载均衡功能
测试02
先要启动EurekaServer,7001/7002服务
再要启动服务提供者provider,8001/8002服务
http://localhost/consumer/payment/get/2
结果
负载均衡效果达到
8001/8002端口交替出现
Ribbon和Eureka整合后
Consumer可以直接调用服务而不用再关心地址和端口号,且该服务还有负载功能了。