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" />
服务提供者初次注册时为禁用状态,需人工启用。断线时,将不会被自动删除,需人工禁用。
如果是一个第三方独立提供者,比如 memcached,可以直接向注册中心写入提供者地址信息,消费者正常使用(通常由脚本监控中心页面等调用):
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"version="1.0.0"protocol="dubbo,hessian" />
</beans>
关注微信公众号和今日头条,精彩文章持续更新中。。。。。