服务发布/服务引用

服务发布与引用如前文编程界面所示。其中一些特性如下:

  • 同一服务发布多种协议
    如下构建多个 ServerConfig 设置给 ProviderConfig 。在 SOFABoot 环境中配置多个 binding 即可。

    1. List<ServerConfig> serverConfigs = new ArrayList<ServerConfig>();
    2. serverConfigs.add(serverConfigA);
    3. serverConfigs.add(serverConfigB);
    4. providerConfig.setServer(serverConfigs);
    1. <sofa:service ref="sampleFacadeImpl" interface="com.alipay.sofa.rpc.bean.SampleFacade">
    2. <sofa:binding.bolt/>
    3. <sofa:binding.rest/>
    4. <sofa:binding.dubbo/>
    5. </sofa:service>
  • 同一服务注册多个注册中心。
    如下构建多个 RegistryConfig 设置给 ProviderConfig 。
    ```java
    List registryConfigs = new ArrayList();
    registryConfigs.add(registryA);
    registryConfigs.add(registryB);

providerConfig.setRegistry(registryConfigs);

  1. * 方法级参数设置。
  2. API 方式中,使用相应的对象 set 方法即可为其设置参数。特别说明的是 SOFARPC 提供了 MethodConfig 进行方法级别的参数设置,如下:
  3. ```java
  4. MethodConfig methodConfigA = new MethodConfig();
  5. MethodConfig methodConfigB = new MethodConfig();
  6. List<MethodConfig> methodConfigs = new ArrayList<MethodConfig>();
  7. methodConfigs.add(methodConfigA);
  8. methodConfigs.add(methodConfigB);
  9. providerConfig.setMethods(methodConfigs); //服务端设置
  10. consumerConfig.setMethods(methodConfigs); //客户端设置
  • 在 SOFABoot 环境中设置参数:
    ```xml

    1. <sofa:global-attrs timeout="3000" address-wait-time="2000"/> <!-- 调用超时;地址等待时间。 -->
    2. <sofa:route target-url="127.0.0.1:22000"/> <!-- 直连地址 -->
    3. <sofa:method name="sayName" timeout="3000"/> <!-- 方法级别配置 -->







```