接着上一篇博文,看下ribbon的负载均衡

重点,ribbon的负载均衡功能

改造上一篇博文的内容,服务注册中心的端口号修改为5550

服务提供者,修改端口号为5551,复制一份工程,端口号修改为5552

controller层内容修改为

@EnableEurekaClient
@RestController
public class HelloController {

	@Value("${server.port}")
	private String port;
	
	@ResponseBody
	@RequestMapping("/hello")
	public String hello(String name) {
		return "Hi, I am " + name + ". This service was supplied by instance " + port;
	}
}

此处,我们获取了配置文件中的端口号,并在服务中体现出来。

服务消费者,需改端口号为5553

启动四个服务,注册中心监控界面

可以看到,eureka-server 处有两个实例,端口分别为5551和5552

在浏览器地址栏输入 http://localhost:5553/hi?name=wangwu

连续的点击,可以依次看到

和 

上面便是ribbon提供的默认的负载均衡解决方案,轮询方式

写这篇博文,主要是看了之前的很多基于springboot1的博文或者书本内容,在做ribbon负载均衡时,需要引入ribbon的依赖包,在springboot2这边,暂时不需要,系统默认的都已经引入过了。

这里我们的pom文件内容为

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.6.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Finchley.SR2</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

	</dependencies>

在查看加载jar包时,可以看到ribbon的jar包已经添加上了

好了,这篇博文就记录到此,如文中有不严谨之处,欢迎留言批评斧正。谢谢。

 

附项目工程代码下载路径:eureka基于ribbon的负载均衡demo

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐