dubbo应用场景示例三
Posted HelloWorld搬运工
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo应用场景示例三相关的知识,希望对你有一定的参考价值。
1、只注册
如果有两个镜像环境,两个注册中心,有一个服务只在其中一个注册中心有部署,另一个注册中心还没来得及部署,而两个注册中心的其它应用都需要依赖此服务。这个时候,可以让服务提供者方只注册服务到另一注册中心,而不从另一注册中心订阅服务。
禁用订阅配置
<dubbo:registryid="hzRegistry" address="10.20.153.10:9090" />
<dubbo:registryid="qdRegistry" address="10.20.141.150:9090"subscribe="false" />
或者
<dubbo:registryid="hzRegistry" address="10.20.153.10:9090" />
<dubbo:registryid="qdRegistry" address="10.20.141.150:9090?subscribe=false"/>
2、静态服务
有时候希望人工管理服务提供者的上线和下线,此时需将注册中心标识为非动态管理模式。
<dubbo:registryaddress="10.20.141.150:9090" dynamic="false" />
或者
<dubbo:registryaddress="10.20.141.150:9090?dynamic=false" />
服务提供者初次注册时为禁用状态,需人工启用。断线时,将不会被自动删除,需人工禁用。
RegistryFactory registryFactory =ExtensionLoader.getExtensionLoader(RegistryFactory.c lass).getAdaptiveExtension();
Registry registry =registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10: 2181")); registry.register(URL.valueOf("memcached://10.20.153.11/com.foo.BarService?category=pr oviders&dynamic=false&application=foo"));
3、多协议
Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一服务上同时支持多种协议。
3.1、不同服务不同协议
不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。
<?xml version="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http: //code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:applicationname="world" />
<dubbo:registryid="registry" address="10.20.141.150:9090"username="admin" passwo rd="hello1234" />
<!-- 多协议配置-->
<dubbo:protocolname="dubbo" port="20880" />
<dubbo:protocolname="rmi" port="1099" />
<!-- 使用dubbo协议暴露服务-->
<dubbo:serviceinterface="com.alibaba.hello.api.HelloService"version="1.0.0" ref= "helloService" protocol="dubbo" />
<!-- 使用rmi协议暴露服务-->
<dubbo:serviceinterface="com.alibaba.hello.api.DemoService"version="1.0.0" ref=" demoService" protocol="rmi" />
</beans>
3.2、多协议暴露服务
需要与 http 客户端互操作
<?xml version="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http: //code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:applicationname="world" />
<dubbo:registryid="registry" address="10.20.141.150:9090"username="admin" passwo rd="hello1234" />
<!-- 多协议配置-->
<dubbo:protocolname="dubbo" port="20880" />
<dubbo:protocolname="hessian" port="8080" />
<!-- 使用多个协议暴露服务-->
<dubbo:serviceid="helloService" interface="com.alibaba.hello.api.HelloService"ve rsion="1.0.0"protocol="dubbo,hessian" />
</beans>
以上是关于dubbo应用场景示例三的主要内容,如果未能解决你的问题,请参考以下文章