负载均衡说明
除了SpringCloud中提供框架外。还有nginx、lvs、F5(硬件当中的负载均衡)也可以实现负载均衡。nginx通过反向代理。
一、只要微服务的名称一样。注册到注册中心去就会有集群效果。
image.png如上一节中的会员服务只要服务名称一样,地址端口不一样。注册到注册中心去。启动效果如下图
image.png
注册中心结果,同一个名称有两个服务器
image.png
为了看负载均衡效果,在控制层代码修改成如下.加一个查看端口号。
package com.joychen.servermenber.controllers;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
public class MemberController {
@Value("${server.port}")
private String port;
@RequestMapping("/member")
public List<String> getMemberAll(){
List<String> users = new ArrayList<>();
users.add("小明");
users.add("小红");
users.add("小蓝");
users.add("小绿");
users.add("小萌");
users.add("serverPort:"+port);
return users;
}
}
二、在微服务中的订单去调用会员服务接口查看负载均衡效果
1.在订单pom.xml文件中加上
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-boot-starter-ribbon</artifactId>
</dependency>
2.在启动Appcation上RestTemplate只要有@LoadBalanced这个注解就会有负载均衡效果
@SpringBootApplication
@EnableEurekaClient
public class EuorderApplication {
public static void main(String[] args) {
SpringApplication.run(EuorderApplication.class, args);
}
@Bean
@LoadBalanced
RestTemplate restTemplate(){
return new RestTemplate();
}
}
三、启动订单微服务。看测试效果
请求地址
http://localhost:7880/getAllUsers
第一次请求结果
image.png
第二次请求结果
image.png
第三次请求结果
image.png
网友评论