apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.54k stars 26.44k forks source link

dubbo:reference #10712

Open khy666 opened 2 years ago

khy666 commented 2 years ago

在dubbo2.7.8中xml配置文件dubbo:reference不生效,以及ymal中没有dubbo.reference这个属性

AlbumenJ commented 2 years ago

please try 3.0.12 or 3.1.1 for the latest versioin

khy666 commented 2 years ago

我改如何配置所有的service中的查询方法可以重试,修改等方法不可重试。 替代项目中的这种配置:

dubbo中的service会越来越多,类似于这样的配置也会越来越多。
AlbumenJ commented 2 years ago

我改如何配置所有的service中的查询方法可以重试,修改等方法不可重试。 替代项目中的这种配置: </dubbo:service> dubbo中的service会越来越多,类似于这样的配置也会越来越多。

可以使用 Dubbo 注解的方式配置。因为 method 级别的配置是需要绑定接口的,无法实现全局统一配置(不同接口的定义可能是不一样的)。

khy666 commented 2 years ago

我改如何配置所有的service中的查询方法可以重试,修改等方法不可重试。替代项目中的这种配置: <dubbo:service interface=“com..Service“ ref=”serviceImpl“> <dubbo:方法名称=”insert“ 重试=”0“/> </dubbo:service> dubbo中的服务ice会越来越多,类似于这样的配置也会越来越多。

可以使用 Dubbo 注解的方式配置。因为 Method 级别的配置是需要绑定接口的,无法实现全局统一配置(不同接口的定义可能是不一样的)。

使用Dubbo注解,每个service都要写重复的方法,非常臃肿。

khy666 commented 2 years ago

我使用BeanPostProcessor这个接口,在每次bean的初始化后,判断该bean的类型,属于ServiceConfig就往里面塞我写好的methods

AlbumenJ commented 2 years ago

我使用BeanPostProcessor这个接口,在每次bean的初始化后,判断该bean的类型,属于ServiceConfig就往里面塞我写好的methods

Dubbo 也提供了 ConfigPostProcessor 可以处理配置,通过实现 ConfigPostProcessor 这个 SPI 可以在服务启动的时候修改配置

khy666 commented 2 years ago

有类似通配符匹配某些方法不可重试的配置吗? 类似 insert,update

AlbumenJ commented 2 years ago

有类似通配符匹配某些方法不可重试的配置吗? 类似 insert,update

可以在 ConfigPostProcessor 里面自己匹配的

@SPI(scope = ExtensionScope.MODULE)
public interface ConfigPostProcessor {

    default void postProcessReferConfig(ReferenceConfig referenceConfig) {
     // 直接读取 referenceConfig 并修改就行
    }

    default void postProcessServiceConfig(ServiceConfig serviceConfig) {

    }
}
bert82503 commented 3 months ago

有类似通配符匹配某些方法不可重试的配置吗? 类似 insert,update

可以在 ConfigPostProcessor 里面自己匹配的

@SPI(scope = ExtensionScope.MODULE)
public interface ConfigPostProcessor {

    default void postProcessReferConfig(ReferenceConfig referenceConfig) {
     // 直接读取 referenceConfig 并修改就行
    }

    default void postProcessServiceConfig(ServiceConfig serviceConfig) {

    }
}

如何屏蔽不激活这个MeshConfigPostProcessor? @AlbumenJ

@Activate
public class MeshConfigPostProcessor implements ConfigPostProcessor {
  // ...
}

META-INF/dubbo/internal/org.apache.dubbo.config.ConfigPostProcessor

mesh-enhance=com.leoao.lpaas.mesh.MeshConfigPostProcessor
AlbumenJ commented 3 months ago

有类似通配符匹配某些方法不可重试的配置吗? 类似 insert,update

可以在 ConfigPostProcessor 里面自己匹配的

@SPI(scope = ExtensionScope.MODULE)
public interface ConfigPostProcessor {

    default void postProcessReferConfig(ReferenceConfig referenceConfig) {
     // 直接读取 referenceConfig 并修改就行
    }

    default void postProcessServiceConfig(ServiceConfig serviceConfig) {

    }
}

如何屏蔽不激活这个MeshConfigPostProcessor? @AlbumenJ

@Activate
public class MeshConfigPostProcessor implements ConfigPostProcessor {
  // ...
}

META-INF/dubbo/internal/org.apache.dubbo.config.ConfigPostProcessor

mesh-enhance=com.leoao.lpaas.mesh.MeshConfigPostProcessor

There is no way to disable it if you configure @Activate

bert82503 commented 3 months ago

There is no way to disable it if you configure @Activate

Okay, thx!