概述
要实现高并发,就要实现服务器的负载均衡,即让服务消费者能够通过轮询或其他策略调用服务提供者上实现的服务。
Dubbo实现了四种负载均衡策略:
- 随机(默认,权重)
- 轮询
- 最少活跃调用数
- 一致性
在之前的服务提供者项目的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;
}
}
然后重新启动项目,可以看到输出的端口信息,可以看到 ,轮询策略下,端口每次都不同,服务是轮询调用的。
最后
以上就是坚定斑马为你收集整理的Dubbo中负载均衡实现高并发的全部内容,希望文章能够帮你解决Dubbo中负载均衡实现高并发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复