Dubbo之旅--扩展协议
2015-05-30 23:06
225 查看
在实际工作中运用dubbo的时候,以上系列的文章基本上能够满足项目的基本需求,当然,对于一些特殊的需求Dubbo可以对其进行扩展,Dubbo拥有者丰富的扩展内容,这次主要将会带领大家去感受一下Dubbo的协议扩展和注册中心扩展.
首先要说的是协议扩展.
为什么要扩展协议呢?什么样的需求需要我们去扩展它?
(1) 不同服务不同协议
需求:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。
consumer.xml
<?xmlversion="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="helloworld" />
<dubbo:registryid="registry"address="127.0.0.1:9090"username="admin"password="helloworld"/>
<!-- 多协议配置 -->
<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>
以上例子我们扩展了两个协议,一个是dubbo协议,另一个是rmi协议.读者可以根据自己实际的需求来根据具体的协议来调用具体的服务.
(2) 多协议暴露服务
需求:需要与http客户端互操作
consumer.xml
<?xmlversion="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="helloworld" />
<dubbo:registryid="registry"address="127.0.0.1:9090"username="admin"password="helloworld"/>
<!-- 多协议配置 -->
<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>
通过多个协议暴露服务,相关的消费者可以通过此多种协议来访问此服务.
以上协议扩展的内容在特定的需求下需要进行扩展,接下来的文章我们将会着重来说明注册中心的扩展.注册中心的扩展相对于协议的扩展而言在项目的使用频率更高,而且能够满足我们的各种需求.
首先要说的是协议扩展.
为什么要扩展协议呢?什么样的需求需要我们去扩展它?
(1) 不同服务不同协议
需求:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。
consumer.xml
<?xmlversion="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="helloworld" />
<dubbo:registryid="registry"address="127.0.0.1:9090"username="admin"password="helloworld"/>
<!-- 多协议配置 -->
<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>
以上例子我们扩展了两个协议,一个是dubbo协议,另一个是rmi协议.读者可以根据自己实际的需求来根据具体的协议来调用具体的服务.
(2) 多协议暴露服务
需求:需要与http客户端互操作
consumer.xml
<?xmlversion="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="helloworld" />
<dubbo:registryid="registry"address="127.0.0.1:9090"username="admin"password="helloworld"/>
<!-- 多协议配置 -->
<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>
通过多个协议暴露服务,相关的消费者可以通过此多种协议来访问此服务.
以上协议扩展的内容在特定的需求下需要进行扩展,接下来的文章我们将会着重来说明注册中心的扩展.注册中心的扩展相对于协议的扩展而言在项目的使用频率更高,而且能够满足我们的各种需求.
相关文章推荐
- ZhihuDialy纯净版-项目学习经验总结(2)
- HTML标签
- 【黑马程序员】----java基础---面向对象
- SEQ序号与ACK序号理解总结(一)
- Android app全局字体设置
- Least Common Multiple
- Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程
- PHP XML Expat 解析器
- iOS开发过程中遇到的问题总结
- SqlServer知识点记录分享
- Ansible-Tower快速入门-4.以超级用户帐号登录【翻译】
- Lifting the Stone(hdoj1115)
- [注]什么是用户?估计90%人不知道
- Error Tips
- Ansible-Tower快速入门-3.快速开始【翻译】
- Unity跑酷游戏中的路点生成算法
- acm的输入文件和输出文件方法
- memcached 项目中使用
- poj3481 用伸展树来做
- jackson的循环问题和hibernate懒加载问题