在 SOFARPC 中,同一个服务可以多协议发布,并按不同协议被客户端调用。主要调用方式有下述几种:
Java API 方式
可以按照如下的代码构建多个
ServerConfig
,不同的ServerConfig
设置不同的协议,然后将这些ServerConfig
设置给ProviderConfig
。List<ServerConfig> serverConfigs =new ArrayList<ServerConfig>(); serverConfigs.add(serverConfigA); serverConfigs.add(serverConfigB); providerConfig.setServer(serverConfigs);
XML 方式
直接在
<sofa:service>
标签中增加多个binding
即可:<sofa:service ref="sampleFacadeImpl" interface="com.alipay.sofa.rpc.bean.SampleFacade"> <sofa:binding.bolt/> <sofa:binding.rest/> <sofa:binding.dubbo/> </sofa:service>
Annotation 方式
在
@SofaService
中增加多个binding
即可:说明如果使用 rest 协议,接口需要加 path。
@SofaService( interfaceType =SampleService.class, bindings ={ @SofaServiceBinding(bindingType ="rest"),//使用 rest 协议,接口需要加 path。 @SofaServiceBinding(bindingType ="bolt") } ) public class SampleServiceImpl implements SampleService{ // ... }
文档内容是否对您有帮助?