阿里云首页 SOFAStack 微服务

直连调用

SOFARPC 支持指定地址进行调用的场景,本文介绍直连调用的环境和方式。

多环境配置

具体使用环境分为下述 2 种:

  • 本地环境

    通过 run_mode=TEST & test-url 来实现直连。配置方式为:

    • application.properties 中配置 run_mode=TEST

    • 在 XML 文件中配置服务引用时,在标签 sofa:binding.bolt 里面加上一个 global-attrs 标签,里面放入一个 test-url 的属性,属性值设置为需要调用的地址。

    <sofa:reference id="sampleService" interface="com.alipay.test.SampleService">
         <sofa:binding.bolt>
             <sofa:global-attrs test-url="127.0.0.1:12200"/>
         </sofa:binding.bolt>
    </sofa:reference>
  • 线上环境

    不推荐配置 test-url,推荐配置 target-url 来实现直连。示例如下:

    <sofa:reference id="sampelService" interface="com.alipay.test.SampleService">
         <sofa:binding.bolt>
             <sofa:route target-url="target-url:12200"/>
         </sofa:binding.bolt>
    </sofa:reference>
    说明

    配置 test-urltarget-url 后,软负载阶段将会失效。 如果同时配置了 run_mode=TESTtest-urltarget-url,会直接使用 test-url 的配置。

配置方式

  • API 方式

    ConsumerConfig<HelloService> consumer =new ConsumerConfig<HelloService>()
    .setInterfaceId(HelloService.class.getName())
    .setRegistry(registryConfig)
    .setDirectUrl("bolt://127.0.0.1:12201");
  • Annotation 方式

    @SofaReference(binding =@SofaReferenceBinding(bindingType ="bolt", directUrl ="127.0.0.1:12220"))
    private SampleService sampleService;
  • XML 方式

    <sofa:reference id="sampleService" interface="com.alipay.test.SampleService">
         <sofa:binding.bolt>
             <sofa:global-attrs test-url="127.0.0.1:12200"/>
         </sofa:binding.bolt>
    </sofa:reference>