SOFARPC 支持指定地址进行调用的场景,此方式允许用户指定服务端地址。本文介绍直连调用的应用场景和配置方式。
注意事项
当直连配置生效时,注册中心软负载将会失效。
直连地址允许配置多个地址,多个地址之间使用英文逗号(,)或英文分号(;)分隔,多个地址间支持负载均衡。
应用场景
具体使用场景分为以下 2 种:
线上场景
在 XML 文件中配置服务引用时,在标签
sofa:binding.bolt
里面加上一个route
标签。route
标签中放入一个target-url
属性,属性值设置为需要调用的地址。<sofa:reference id="sampelService" interface="com.alipay.test.SampleService"> <sofa:binding.bolt> <sofa:route target-url="${targetUrl}:port"/> </sofa:binding.bolt> </sofa:reference>
${targetUrl}:port
需修改为实际调用的地址和端口。更多配置方式,请参见 配置方式。测试场景
在
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="${targetUrl}:port"/> </sofa:binding.bolt> </sofa:reference>
重要test-url
仅适用于 XML 的配置方式。test-url
必须配合run_mode=TEST
才会生效,主要用于测试阶段。
配置方式
API 方式
通过 API 方式配置直连调用,地址格式为:
协议://IP:端口
。配置示例如下:ConsumerConfig<HelloService> consumer =new ConsumerConfig<HelloService>() .setInterfaceId(HelloService.class.getName()) .setRegistry(registryConfig) .setDirectUrl("bolt://127.0.0.1:12201");
Annotation 方式
通过 Annotation 方式配置直连调用,地址格式为:
IP:端口
。配置示例如下:@SofaReference(binding =@SofaReferenceBinding(bindingType ="bolt", directUrl ="127.0.0.1:12220")) private SampleService sampleService;
XML 方式
通过 XML 方式配置直连调用,地址格式为:
IP:端口
。配置示例如下:<sofa:reference id="sampleService" interface="com.alipay.test.SampleService"> <sofa:binding.bolt> <sofa:global-attrs target-url="127.0.0.1:12200"/> </sofa:binding.bolt> </sofa:reference>
文档内容是否对您有帮助?