Dubbo中负载均衡实现高并发

要实现高并发,就要实现服务器的负载均衡,即让服务消费者能够通过轮询或其他策略调用服务提供者上实现的服务。

Dubbo实现了四种负载均衡策略:

  1. 随机(默认,权重)
  2. 轮询
  3. 最少活跃调用数
  4. 一致性

在之前的服务提供者项目的yml配置文件中加入:

dubbo:
	provider:
	    loadbalance: roundrobin # 轮询方式

因为这里在实验时需要运行多个服务提供者实例,所以需要做以下设置:
在这里插入图片描述
不断地更改dubbo的protocol的端口,运行多个实例,这里,我开放三个服务提供者,端口号分别为12345、12346和12347。
在这里插入图片描述
在管理后台可以看到多个服务提供者都已经注册到zookeeper中。
在这里插入图片描述
为了区分调用的服务,这里我们让服务提供者输出一下自己开启服务的端口,因为我们是部署到一台计算机的不同端口上了。

package com.funt.hello.dubbo.service.user.provider.api.impl;

import com.funt.hello.dubbo.service.user.api.UserService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Value;

@Service(version = "1.0.0")
public class UserServiceImpl implements UserService {

    @Value("${dubbo.protocol.port}")
    private String port;

    @Override
    public String sayHi() {
        return "hello dubbo " + port;
    }
}

然后重新启动项目,可以看到输出的端口信息,可以看到 ,轮询策略下,端口每次都不同,服务是轮询调用的。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zyxhangiian123456789/article/details/107208861