负载均衡(Load Balance):其实就是将请求分摊到多个操作单元上进行执行,从而共同完成工作任务。
在集群负载均衡时,Dubbo 提供了多种均衡策略(包括随机random、轮询roundrobin、最少活跃调用数leastactive),缺省为random随机调用。
配置负载均衡策略,既可以在服务提供者一方配置,也可以在服务消费者一方配置,两者取一
- 如下服务提供者指定负载均衡策略:
@Service(loadbalance = "roundrobin")
public class UserServiceImpl implements UserSerivce {
@Override
public boolean login(String username, String password) {
System.out.println(" 8881 login,username:"+username+" password:"+password);
// 模拟用户验证登录过程,正式开发时通过Dao来验证
if ("admin".equals(username) && "123".equals(password)){
return true;
}
return false;
}
}
如下在服务消费者指定负载均衡策略
@Controller
@RequestMapping("/user")
public class UserController {
@Reference(loadbalance = "roundrobin")
private UserSerivce userService;
测试负载均衡效果
多个服务提供者服务器,多个服务消费者,消费者会轮询每个消费者服务器,不会只访问一台提供者服务器。