Spring Cloud 学习笔记2 Eureka 结合ribbon实现负载均衡
Spring Cloud学习笔记2
上篇文章Spring Cloud 学习笔记1 Eureka环境搭建 成功的进行了环境的搭建。这篇文章接着学习方大佬的内容,实现ribbon负载均衡。
本次代码都已经提交在github上,点击这里访问
如何开启多实例(单个idea开启多个client,这样注册中心就会看到多个了)
本篇文章基于上篇文章的代码。需要修改的地方:
pom.xml
->modules
中增加
<module>ribbon</module>
src\main\java\cn\djc8\eurekaclient\EurekaclientApplication.java
增加portValue属性,portValue上面增加注解 @Value("${server.port}")
welcome方法修改为: return name+" PORT:"+portValue;
新建一个Spring boot项目,如下图
修改 src\main\resources\application.properties
名称为 src\main\resources\application.yml
修改 src\main\resources\application.yml
为
eureka:
client:
serviceUrl:
defaultZone: http://localhost:7001/eureka/
server:
port: 7010
spring:
application:
name: ribbon
修改 ribbon\pom.xml
中的内容为:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.djc8</groupId>
<artifactId>blog2</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>cn.djc8</groupId>
<artifactId>ribbon</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ribbon</name>
<description>Demo project for Spring Boot</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.1.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
修改 src\main\java\cn\djc8\ribbon\RibbonApplication.java
增加图中的两段代码
ribbon 增加类:src\main\java\cn\djc8\ribbon\WelcomeService.java
ribbon 增加类:src\main\java\cn\djc8\ribbon\WelcomeControl.java
启动ribbon
我们默认client还没有启动,按照文章开头多实例的方式,先允许idea能够开启多个client。
之后先启动一个client,然后修改 src\main\resources\application.yml
中的端口为7004
(或者其他)再启动一次
查看注册中心,在web浏览器中访问链接 :http://localhost:7001
web浏览器中 访问链接 :http://127.0.0.1:7010/welcome
浏览器中交替显示,代表负载均衡成功
username PORT:7005
username PORT:7004
因为ribbon默认的负载均衡规则不一定符合要求,可以通过更改配置的方式,修改为其他的规则。
可以看下参考文献1
参考文献
- 负载均衡之ribbon
- Ribbon进行服务调用/负载均衡以及请求重试配置
- Spring-Cloud-Ribbon学习笔记(二):自定义负载均衡规则
- EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
本文来自:Spring Cloud 学习笔记2 Eureka 结合ribbon实现负载均衡-小码农,转载请保留本条链接,感谢!
- 本文标签: spring cloud eureka ribbon
- 本文链接: https://djc8.cn/archives/spring-cloud-learning-note-2-eureka-and-ribbon-to-achieve-load-balancing.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权