group:适用于一个接口有多个实现的场景。有点类似设计模式中的工厂方法,只不过工程方法是根据传入的实例对象确定具体调用哪个方法,而dubbo则根据group来具体调用接口的哪个实现。
例如:发送短信接入了多家运营商,但是每个运营商都有发送短信的功能,这样就可以定义一个dubbo接口,然后分别给每个运营商加一个group去实现这个接口,具体使用哪个运营商发短信的时候只需要引用不同group的dubbo服务就行了。
version:适用于一个dubbo服务有多个不同版本,但是多个版本需要共存的情况,一般用于新老功能过渡的场景中,比如对之前一个老功能进行了改动,但是需要观察一下改动之后的效果这个时候就可以对同一个服务设置不同的版本,然后消费端有些实例调用新版本,有些实例调用老版本,待新版本稳定后逐步下掉老版本。
tag:这个可以用一个词来修饰即专款,专用。tag一般在服务提供者上打上标签,标识服务。消费者调用时需要带上tag标签,就会筛选出带有tag标签的服务提供者列表,然后按照负载策略进行调用。如果没有服务提供者则需要查看是否配置了dubbo.force.tag,如果为fasle的话,则会调用没有设置标签的服务,如果为true的话,找不到与之对应的服务就无法调用