当前位置: 代码迷 >> 综合 >> 04-dubbo-负载均衡、组、版本号
  详细解决方案

04-dubbo-负载均衡、组、版本号

热度:124   发布时间:2023-10-24 06:35:01.0

1、负载均衡设置

2、设置组

3、设置版本号

 


负载均衡设置

1、集群:一个内容、部署多次、整体称为集群。集群中每个个体都应该部署不同的服务器上。IP不同,端口相同。

2、伪集群:集群汇总内容部署在同一台服务器上,遇到不同端口区分不同个体 。 IP相同,端口不同

3、负载均衡是在集群的前提下,当访问整个集群时。集群中每个节点被访问的规则或频率

4、Dubbo内置的负载均衡策略,默认为Random。一共有4种:随机、轮询、活跃数、一致性hash

04-dubbo-负载均衡、组、版本号

04-dubbo-负载均衡、组、版本号

5、配置权重

@DubboService(loadbalance = "roundrobin")
public class SayInterfaceImpl implements SayInterface {@Overridepublic String sayHello(String name) {System.out.println("访问到了 sayHello 方法");return "1111111111111111";}
}

6、负载均衡针对的是并发。一个一个访问时串行访问。没有负载均衡

7、负载均衡配置策略(非常重要)

04-dubbo-负载均衡、组、版本号

04-dubbo-负载均衡、组、版本号

 


设置组

7、默认环境中dubbo的提供者是不分组的。可以指定分组,目的是多客户端并行生效。正常开发中,服务都是要分组的。

8、放服务端进行了分组,则消费端也要进行分组。

服务端:

// 提供者
@DubboService(loadbalance = "roundrobin",group = "first-group")
public class SayInterfaceImpl implements SayInterface {@Overridepublic String sayHello(String name) {System.out.println("访问到了 sayHello 方法");return "1111111111111111";}
}

客户端:

@Service
public class SayHelloServiceImpl implements SayInterface {@DubboReference(group = "first-group")  // 2.2,7 以后使用这个注解private SayInterface sayInterface;@Overridepublic String sayHello(String name) {String s = sayInterface.sayHello(name);System.out.println(s);return s;}
}

dubbo://192.168.181.1:20880/com.nuc.service.SayInterface?anyhost=true&application=dubbo-provide&default=true&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&group=first-group&interface=com.nuc.service.SayInterface&loadbalance=roundrobin&metadata-type=remote&methods=sayHello&pid=8720&release=2.7.8&revision=1.0.0bate&side=provider×tamp=1621348697491&version=1.0.0bate


设置版本号

默认环境中dubbo没有环境版本,我们可以指定版本进行并行服务。服务端和客户端都需要版本号。。。

服务端:

@DubboService(loadbalance = "roundrobin",group = "first-group",version = "1.0.0bate")
public class SayInterfaceImpl implements SayInterface {@Overridepublic String sayHello(String name) {System.out.println("访问到了 sayHello 方法");return "1111111111111111";}
}

客服端:


@Service
public class SayHelloServiceImpl implements SayInterface {@DubboReference(group = "first-group",version = "1.0.0bate")  // 2.2,7 以后使用这个注解private SayInterface sayInterface;@Overridepublic String sayHello(String name) {String s = sayInterface.sayHello(name);System.out.println(s);return s;}
}

dubbo://192.168.181.1:20880/com.nuc.service.SayInterface?anyhost=true&application=dubbo-provide&default=true&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&group=first-group&interface=com.nuc.service.SayInterface&loadbalance=roundrobin&metadata-type=remote&methods=sayHello&pid=8720&release=2.7.8&revision=1.0.0bate&side=provider×tamp=1621348697491&version=1.0.0bate